![awk를 사용하여 텍스트의 일부만 검색하고 바꾸기](https://linux55.com/image/150795/awk%EB%A5%BC%20%EC%82%AC%EC%9A%A9%ED%95%98%EC%97%AC%20%ED%85%8D%EC%8A%A4%ED%8A%B8%EC%9D%98%20%EC%9D%BC%EB%B6%80%EB%A7%8C%20%EA%B2%80%EC%83%89%ED%95%98%EA%B3%A0%20%EB%B0%94%EA%BE%B8%EA%B8%B0.png)
내 파일에 다음 내용이 있습니다.
$ cat file.txt
path,foo,12344,bar,foo,example4/path/1,test2
path,bar,12345,bar,bar,example2/path/4,test5
6번째 필드 "Path"를 "Test Path"로 변경하고 싶습니다.
path,foo,12344,bar,foo,example4/test-path/1,test2
path,bar,12345,bar,bar,example2/test-path/4,test5
나는 성공하지 않고 다음을 시도했습니다.
$ awk -F, -v needle='path' -v replacement='test-path' 'BEGIN{ OFS = FS; } (NR > 1 && $6 == needle) { $6 = replacement; } 1' file.txt
답변1
이 시도,
awk -F ',' -v OFS=',' '{gsub("path","test-path",$6)}1' file.txt
path,foo,12344,bar,foo,example4/test-path/1,test2
path,bar,12345,bar,bar,example2/test-path/4,test5
path
test-path
게임 6 에서만 교체
답변2
다음 명령을 사용해보십시오
$ sed "s/\/path/\/test-path/" filename
path,foo,12344,bar,foo,example4/test-path/1,test2
path,bar,12345,bar,bar,example2/test-path/4,test