;로 구분된 행의 마지막 요소를 가져옵니다.

;로 구분된 행의 마지막 요소를 가져옵니다.

구분 기호가 ;인 파일(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

관련 정보