如何在awk END语句中写入对文件的更改



我用这个"bash";我使用awk功能的脚本。我可以以某种方式将更改保存到END语句中的文件中吗?或者这不是awk是如何处理事情的。或者你会建议使用grep和sed的组合吗?

#!/usr/bin/bash


FILENAME=$1
SUBSTRING=$2


echo $FILENAME 

cat $FILENAME | awk '
BEGIN {
IGNORECASE=1
foundinput=0
};


{
if (foundinput={
if ($0 ~ /INPUT/){
start=match($0, //.*$/)
SUBTHIS=substr($0, start)
sub(SUBTHIS, "'$SUBSTRING'")
print($0)
}   
}
}

{gsub(" ", "", $0)}
b=/BRAKEDISC/

{
if (b={
foundinput=1
};
}

END {
print $0 > "input.bak"
}
'

如果有任何建议,我将不胜感激。

欢呼,Christopher

看起来好像不需要END块。您只需要将输出重定向到input.bak,因此:

awk '{...}' filename > input.bak

最新更新