다음 라인으로 구성된 파일이 있다고 가정합니다.
12345 567 7878 66 어3 t45t y6y46y 4년 6년 656년 y5년 46y6 65y7 y66uyuy yy46y6y
출력은 다음과 유사해야 합니다.
66 y6y46y y5y y66uyuyy y46y6y
sed 's/.* //g'
filename 명령과 다른 여러 명령을 시도했지만 sed
작동하지 않습니다.
정확한 명령어가 무엇인지 알 수 있을까요 sed
?
답변1
당신은 시도 할 수 있습니다:
sed 's/.* //'
awk '{print $NF}'
파일에 공백으로 끝나는 줄이 있는 경우 를 사용하여 미리 해당 후행 공백을 제거할 수 있습니다 sed 's/ +$//'
. 이 두 가지 작업을 한 줄로 결합할 수 있습니다.
sed -e 's/ +$//' -e 's/.* //'
답변2
awk '{print $NF}'
sed 's/[[:blank:]]*$//;s/.*[[:blank:]]//'
awk
이것은 여전히 각 빈 줄에 대해 빈 줄을 인쇄합니다(as 연산자가 있는 전체 줄은 $
0에 적용되어 완전한 레코드를 생성합니다). 이를 방지하려면:
awk 'NF{print $NF}'
sed 's/[[:blank:]]*$//;s/.*[[:blank:]]//;/./!d'
답변3
변수 awk
는$NF
각 레코드의 마지막 필드;이를 사용하면 다음과 같이 파일의 마지막 필드만 인쇄할 수 있습니다.
awk '{print $NF}' file
답변4
grep
대신 다음과 같은 적절한 패턴을 사용할 수 있습니다 sed
.
grep -o "[a-Z0-9]*$"
이 예에서는 [...]
"단어"에 적합한 것으로 간주되는 문자 범위를 포함합니다(이 경우 영숫자, 추가 기호를 추가할 수 있으며 그 중 일부는 이스케이프해야 함).