vim의 모든 줄을 줄의 마지막 슬래시 뒤에 오는 내용으로 바꾸십시오.

vim의 모든 줄을 줄의 마지막 슬래시 뒤에 오는 내용으로 바꾸십시오.

다음과 같은 샘플 데이터가 있습니다.

aaa/bbb/ccc/ddd/eee/fff
aaa/bbb/ccc/ddd/eee/fff/gg
aaa/bbb/ccc/ddd/eee/fff/gg/hhhhh

어떻게 구문 분석할 수 있습니까?

fff
gg
hhhhh

vim이나 bash로?

감사해요

답변1

당신이 사용할 수있는 awk. 마지막 필드를 원하지만 구분 기호가 다릅니다.

-F : --필드 구분 기호.

Awk NF는 레코드의 총 필드 수를 제공합니다. 따라서 NF라고 하면 마지막 필드 번호 또는 해당 인덱스를 보유합니다. 따라서 {print $NF}는 {print $1} 또는 {print $2}와 유사합니다.

➜  awk -F'/' '{print $NF}' test.txt
fff
gg
hhhhh

답변2

Vim을 사용하면 다음을 사용하여 마지막 슬래시( /) 앞의 모든 항목을 제거할 수 있습니다.

:%s/.*\///

다음과 비슷한 작업을 수행할 수 있습니다 sed.

sed 's/.*\///' file

답변3

Bash는 아마도 이에 대한 첫 번째 선택은 아닐 것입니다.

mapfile -t < data; printf %s\\n "${MAPFILE[@]##*/}"

관련 정보