
다음과 같은 샘플 데이터가 있습니다.
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[@]##*/}"