Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/unix/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Unix 如何将文件名传递给sed_Unix_Sed_Grep - Fatal编程技术网

Unix 如何将文件名传递给sed

Unix 如何将文件名传递给sed,unix,sed,grep,Unix,Sed,Grep,我正在尝试下面的方法 grep 178 * | sed 's/178/179/g' Results: ifcfg-bond0:IPADDR=10.30.10.179 ifcfg-bond1:IPADDR=10.30.8.179 rule-bond0:from 10.30.10.179 table sip 然而,当我试图将-I选项传递给sed以使更改永久化时,我得到了以下结果 grep 178 * | sed -i 's/178/179/g' sed: no input files 有什么

我正在尝试下面的方法

grep 178 * | sed 's/178/179/g'

Results:

ifcfg-bond0:IPADDR=10.30.10.179
ifcfg-bond1:IPADDR=10.30.8.179
rule-bond0:from 10.30.10.179 table sip
然而,当我试图将-I选项传递给sed以使更改永久化时,我得到了以下结果

grep 178 * | sed -i 's/178/179/g'
sed: no input files

有什么想法吗?

这就是我如何让它工作的方法!:)


避免使用叉子/烟斗怎么样

 sed -i 's/178/179/g' *
不包含178的文件不会受到影响


您问题中的原始文件无法使用,因为
-i
替换了就地文件,但您通过stdin将数据导入(就地替换毫无意义)。

使用
grep 178*
选择当前目录中的所有文件。你必须得到一个特定的,以便做
sed。。。文件
。但它们将被重新写入,因此mtime将为“现在”。这可能是一个意外的副作用。非常有效的解决方案@Glenn副作用不是一个问题(没有指定为有问题的约束和正常影响)。有趣的是,我们在为别人写问题几秒钟后就解决了问题:-)
 sed -i 's/178/179/g' *