将csh中的管路更换为sed

将csh中的管路更换为sed,sed,foreach,line,csh,Sed,Foreach,Line,Csh,我正在尝试更改一批文件中特定行的内容。我原以为那是小菜一碟,但由于某种原因,什么也没发生,所以我想我错过了什么。 第8行本应更换 这里是我使用的csh脚本: #!/bin/csh # # replace context in line xxx by yyy # 2010/05/07 set files = `ls FILENAMEPART*` echo $files foreach file ($files) sed '8,8 s/1/2 /' $file end 感谢

我正在尝试更改一批文件中特定行的内容。我原以为那是小菜一碟,但由于某种原因,什么也没发生,所以我想我错过了什么。 第8行本应更换

这里是我使用的csh脚本:

#!/bin/csh
#
# replace context in line xxx by yyy
# 2010/05/07

set files = `ls FILENAMEPART*`
echo $files
foreach file  ($files)
        sed  '8,8 s/1/2 /' $file 
end

感谢您的建议

sed默认情况下将生成的文件(替换行)打印到stdout,并保持源(输入)文件不变。使用-i选项进行就地编辑,这意味着更改直接在$file中进行。

不客气。如果答案能解决你的问题,请接受。当然,我只是在等待几分钟后才被允许回答