2

我尝试了下面的 awk 衬里(在 Windows 命令提示符上):无法正常工作

gawk -v var="hot" "{ if(!NR){gsub(/cool/,var,$0) ;print} else{print}}" awk_test

输入文件在下面

 this is a cool jack
 this nota cool kack
 this obviously a cool jack 

一个unix解决方案也是可行的

4

3 回答 3

0

您可以尝试以下方法:

sed '$d' yourfile | sed 's/cool/hot/g' > newfile
tail -1 yourfile >> newfile

这应该首先对文件的最后一行以外的所有内容进行替换,然后添加原始文件的最后一行。

于 2010-07-22T06:33:06.110 回答
0
awk -vvar="hot" '{gsub("cool",hot,t);print t}{t=$0}END{print}' file
于 2010-07-22T08:47:31.670 回答
0

您还可以将行数作为参数传递:

gawk -v var=hot -v lines=$(wc -l < test.txt) '
    NR != lines {gsub(/cool/, var)} 
    {print}
' test.txt
于 2010-07-22T16:54:27.520 回答