구분 기호가 ;인 파일(test.txt)이 있습니다. 각 행의 마지막 요소를 어떻게 작성합니까? (각 요소마다 길이가 다릅니다)
답변1
sed 's/.*;//' < test.txt
;
마지막 줄까지 각 줄의 모든 내용을 삭제합니다.
또는 다음을 사용하여 awk
:
awk -F';' '{print $NF}' < test.txt
필드 수를 미리 알고 있는 경우 사용할 수 있습니다 cut
. 예를 들어 필드가 4개 있는 경우:
cut -d';' -f4 < test.txt
그러나 행에 필드가 4개 미만이면 빈 행이 반환된다는 점에 유의하세요.와는 별개로;
필드가 하나만 있는 경우(행에 없음), 이 경우 전체 행(첫 번째 필드)이 출력됩니다. 기능의 알려진 버그입니다 cut
.
답변2
#!/bin/bash
while read line;
do
echo $(echo $line | awk -F ';' '{print $NF}')
done < test.txt
test.txt
이것은 각 줄을 입력으로 사용하고 .로 구분된 마지막 요소를 인쇄하는 간단한 스크립트입니다 ;
.
답변3
또는 bash에서:
#!/bin/bash
while read line ; do
echo ${a##*;}
done