줄이 특정 단어로 시작하는 경우에만 파일의 필드를 인쇄합니다.

줄이 특정 단어로 시작하는 경우에만 파일의 필드를 인쇄합니다.

다음 파일이 있습니다.


   LINK=dummy 172.17.100 => 10.218.11 [PATH=/etc]
      FILE=hosts 172.17.100 => 10.218.11 [PATH=/etc]
       FILE=network 172.17.100 => 10.218.11 [PATH=/etc/sysconfig]
     LINK=empty 172.17.100 => 10.218.11 [PATH=/etc]
   FILE#TEST 172.17.100 => 10.218.11 [PATH=/etc/sysconfig]

줄이 단어로 시작하는 경우에만 첫 번째 필드와 다섯 번째 필드를 인쇄하는 방법은 무엇입니까 FILE?

단어는 FILE줄의 시작 부분에 직접 올 수도 있고 줄의 공백이나 TAB 뒤에 올 수도 있습니다.

내가 기대했던 것의 예

  FILE=hosts   [PATH=/etc]
  FILE=network [PATH=/etc/sysconfig]
  FILE#TEST    [PATH=/etc/sysconfig]

나는 이것을 시도했지만 작동하지 않습니다

awk '$1 == "^[[:blank:]]*FILE*" && '{print $1" "$5}'  file

답변1

awk '$1 ~ /^FILE/ { print $1 " " $5 }'

.exe를 사용해야 하는 ==정규 표현식이 아닌 문자 그대로의 동등성이 확인되므로 접근 방식이 작동하지 않습니다 .~

답변2

이 시도:

awk '/^ *FILE=/{print $1, $5}'

또는

awk '/^[[:blank:]]*FILE=/{print $1, $5}'

관련 정보