한 줄의 마지막 몇 내용을 인쇄하는 방법은 무엇입니까?

한 줄의 마지막 몇 내용을 인쇄하는 방법은 무엇입니까?

아래와 같은 줄이 포함된 파일이 있습니다.

ta=/*92/*39/*1/*649/*12
ta=/*92/*12/*4/*342/*90
ta=/*92/*33/*9/*455/*3
ta=/*92/*12/*3/*649/*25
ta=/*92/*99/*7/*649/*7

등.

아래와 같은 출력이 있는 파일을 원합니다.

*12
*90
*3
*25
*7

이는 네 번째 슬래시 다음의 마지막 부분만 인쇄하고 싶다는 의미입니다.

나는 열심히 노력했다 cat filename | awk '{print $1}'. 그것은 출력을 제공합니다

ta=/*92/*39/*1/*649/*12

하지만 내 요구 사항은 숫자만 얻는 것입니다 *12.

답변1

컷을 사용해 보세요. 예를 들면 다음과 같습니다.cut -d/ -f6 file

답변2

을 사용하려면 awk질문에 표시한 대로 설정할 수 있습니다.필드 구분 기호그런 다음 /마지막 필드를 인쇄하십시오.

awk -F/ '{print $NF}' filename

답변3

GNU grep을 사용하십시오:

grep -o '\*[0-9]\+$' file

산출:

*12
*90
*삼
*25
*7

답변4

당신이 원하는 것이 무엇인지에 대해 약간의 모호함이 있습니다. 네가 원한다면모든 것다섯 번째 슬래시 뒤에는 다음을 사용합니다.

sed -r 's|^([^/]*/){5}||;t;s|.*||' filename

다소 병적이며 가정에 의문을 제기하고 경계에 도전하는 입력의 경우

ta=/*92/*39/*1/*649/*12
ta=/*92/*12/*4/*342/*90
foo/The/quick/brown/fox
bar/jumps/over/the/lazy/dog
/Once/upon/a/midnight/dreary
/as/I/pondered/weak/and/weary

그러면 다음과 같은 출력이 제공됩니다.

*12
*90

dog
dreary
and/weary

입력의 세 번째 줄에는 슬래시가 4개만 있으므로 출력의 세 번째 줄은 비어 있습니다. 따라서 다섯 번째 줄 이후에는 아무 것도 없습니다(왜냐하면다섯 번째 슬래시는 없습니다). 여섯 번째(마지막) 출력 줄에는 /여섯 번째 입력 줄에 슬래시가 6개 있고 "모든 것다섯 번째 슬래시 이후'에는 여섯 번째 슬래시가 포함됩니다.

관련 정보