아래와 같은 줄이 포함된 파일이 있습니다.
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개 있고 "모든 것다섯 번째 슬래시 이후'에는 여섯 번째 슬래시가 포함됩니다.