특정 값이 포함된 필드를 인쇄할 수 있습니까?
다음 파일을 고려하십시오.
foo,boo,123,1234312,ABC
foo,boo,ABC,bla,bla
포함되었지만 모든 레코드에 대해 고정되지 않은 필드가 있으므로 ABC
명령은 $5
첫 번째 레코드와 $3
두 번째 레코드 모두에 인쇄해야 합니다.
답변1
응, 너처럼이전 질문, 그러나 모든 필드와 일치합니다.
$ awk -F, '{for(i=1;i<=NF;i++){if($i~/ABC/){print $i}}}' file
ABC
ABC
위의 내용도 파일을 인쇄합니다.포함하다 ABC
, 좋아요 fooABC
또는 fooABCbar
뭔가. 다음 필드만 인쇄예 ABC
, 사용:
awk -F, '{for(i=1;i<=NF;i++){if($i=="ABC"){print $i}}}' file
Perl에서도 마찬가지입니다.
perl -F, -lane 'print grep{/ABC/}@F' file ## field matches
perl -F, -lane 'print grep{$_=="ABC"}@F' file ## field is
답변2
grep
PCRE(Perl Compatible Regular Expressions)와 함께 사용할 수 있습니다 .
grep -Po '(?<=^|,)ABC(?=,|$)' file.txt