[linux] 세 번째 열을 마지막 열로 인쇄하는 방법은 무엇입니까?
DbgView 로그 파일에서 처음 두 열 (내가 관심이없는 열)을 제거하려고합니다. 행 끝까지 3 열부터 인쇄하는 예를 찾을 수없는 것 같습니다. 각 줄에는 가변 개수의 열이 있습니다.
답변
… 또는 더 간단한 해결책 : cut -f 3- INPUTFILE
올바른 구분 기호 (-d)를 추가하면 동일한 효과를 얻을 수 있습니다.
답변
awk '{for(i=3;i<=NF;++i)print $i}'
답변
awk '{ print substr($0, index($0,$3)) }'
해결책은 여기에서 찾을 수 있습니다 :
http://www.linuxquestions.org/questions/linux-newbie-8/awk-print-field-to-end-and-character-count-179078/
답변
Jonathan Feinberg 의 답변은 각 필드를 별도의 줄에 인쇄합니다. 을 사용 printf
하여 동일한 행에 출력 할 레코드를 다시 작성할 수 있지만 필드를 왼쪽으로 이동하면됩니다.
awk '{for (i=1; i<=NF-2; i++) $i = $(i+2); NF-=2; print}' logfile
답변
awk '{$1=$2=$3=""}1' file
주의 :이 방법은 1,2,3 필드에 “공백”을 남기지 만 출력 만보고 싶다면 문제가되지 않습니다.
답변
예를 들어 같은 줄에서 세 번째 이후의 열을 인쇄하려면 다음을 사용할 수 있습니다.
awk '{for(i=3; i<=NF; ++i) printf "%s ", $i; print ""}'
예를 들면 :
Mar 09:39 20180301_123131.jpg
Mar 13:28 20180301_124304.jpg
Mar 13:35 20180301_124358.jpg
Feb 09:45 Cisco_WebEx_Add-On.dmg
Feb 12:49 Docker.dmg
Feb 09:04 Grammarly.dmg
Feb 09:20 Payslip 10459 %2828-02-2018%29.pdf
다음과 같이 인쇄됩니다.
20180301_123131.jpg
20180301_124304.jpg
20180301_124358.jpg
Cisco_WebEx_Add-On.dmg
Docker.dmg
Grammarly.dmg
Payslip 10459 %2828-02-2018%29.pdf
보시다시피, 급여 명세서는 공백이 있어도 올바른 줄에 표시됩니다.
답변
다음 줄은 어떻습니까?
awk '{$ 1 = $ 2 = $ 3 = ""; print} '파일
@ ghostdog74 제안을 기반으로합니다. 내 라인을 필터링 할 때 더 잘 작동해야합니다.
awk '/ ^ exim4-config / {$ 1 = ""; } '파일 인쇄