포럼에 주어진 문제에 대해 다른 해결책을 시도했지만 지정된 구분 기호 %$%
에 대해 작동하지 않습니다. 특정 하나를 추출해야합니다. 200+ 열을 포함하는 파일의 열.
awk -F"%$%" '{print $1}' sample.txt > outfile.txt
awk 'gsub("%$%",":")' sample.txt > outfile.txt
포럼에 주어진 문제에 대해 다른 해결책을 시도했지만 지정된 구분 기호 %$%
에 대해 작동하지 않습니다. 특정 하나를 추출해야합니다. 200+ 열을 포함하는 파일의 열.
awk -F"%$%" '{print $1}' sample.txt > outfile.txt
awk 'gsub("%$%",":")' sample.txt > outfile.txt
당신은 또한 리터럴 문자열에 특수 문자 인 \
, 그것을 탈출 할 수 있도록 기호 $
가 있으므로, 정규식에서의 특수 문자 다시 이스케이프해야합니다.
$ cat sample
ghkjlj;lk%$%23e;k32poek%$%eqdje2oijd%$%xrgtdy5h
$ awk -F'%\\$%' '{print $1}' sample
ghkjlj;lk
상관없이 -F (FS)
또는 gsub()
, 그것은 정규식을 기대하고, 당신이 사용하는 문자 클래스 중 하나를 필요로하거나 예 $
처럼 특별한 의미와 그 문자를 탈출. 당신은 단지 구분을 변경하려면
kent$ awk -F'%[$]%' '{print $1}' <<<"foo%$%bar%$%blah"
foo
, 당신은 gsub
또는 OFS
을 사용하여 수행 할 수 있습니다
kent$ awk -F'%[$]%' -v OFS=":" '$1=$1' <<<"foo%$%bar%$%blah"
foo:bar:blah
kent$ awk 'gsub(/%[$]%/,":")+1' <<<"foo%$%bar%$%blah"
foo:bar:blah