열 4에서 값 2를 찾고 열 6을 일치하는 곳마다 선행 "-" 기호로 바꿔야 합니다.
csv 파일이 있다고 가정하십시오 - file1이 이와 같습니다.
abc,0,def,1234,ijk
xyz,2,def,2345,abc
ijk,2,def,5678,ijl
다음과 같은 출력을 제공하려면 정규식이 필요합니다.
abc,0,def,1234,ijk
xyz,2,def,-2345,abc
ijk,2,def,-5678,ijl
어떻게 사용하나요 awk
? sed
또는perl
답변1
해결책 awk
:
$ awk -F',' '$2 == 2 {$4 = "-"$4}1' OFS=',' file
abc,0,def,1234,ijk
xyz,2,def,-2345,abc
ijk,2,def,-5678,ijl
동등한 perl
:
$ perl -F',' -anle '$F[3] = "-".$F[3] if $F[1] == 2; print join ",", @F' file