스크립트가 있습니다
#! /bin/bash
awk -v pat="$1" '{ if(match($0, pat)) {print $0} }' "$3"
awk -v pat="$1" -v rep="$2" '{gsub(pat, rep); print $0}' "$3"
나는 그것을 실행하고 싶다.
myscript '\.\.+' ' ' ./inputfile
(GNU awk)가 $1
이해할 수있는 정규식은 어디에 있어야합니다 awk
.
지정 pat
에 대한 인수로 정규식 표현으로 gsub()
하고 match()
하지 않습니다 작동합니다. 어떻게 작동시킬 수 있는지 궁금합니다. 감사.
변수 전달에 관한 한 올바르게 진행하고 있습니다. 식 작동하려면 당신이 필요 백 슬래시를 두 배로 , 둔한에 적어도 :
myscript '\\.\\.+' ' ' ./inputfile
AWK 부분을 단순화 할 수 있습니다.
#!/bin/bash
awk -v pat="$1" 'match($0, pat)' "$3"
awk -v pat="$1" -v rep="$2" '{gsub(pat, rep)} 1' "$3"
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다