shell中,sed可以写入前面的数据流吗?例如,cat一个文件,可不可以用sed把cat的内容写入到指定文件?

题目:cat file1 | sed -n -e '3p' 得到一个数据流,可不可以用sed把找出来的这一行写到file2的指定行?或者有什么方法?

用sed的a命令(append,附加到文件的指定行后)或 i命令(insert,插入到指定行前)

str=`cat file1 | sed -n '3p'`
line=3 # file2的指定行
sed -i "${line} a$str" file2追问

首先谢谢你。

你的意思就是分两步来做是吧?我的意思就是可不可以直接把`cat file1 | sed -n '3p'`的数据流赋给$str,类似于a$-

追答

我上面就是把数据流赋值给str的啊
你是想一步完成?不大容易。

追问

网上说sed可以支持数据流,我以为可以直接用管线一步完成的,呵呵,新手想的比较多!!

追答

sed是支持数据流,而且是文本数据流。因为其数据处理是以行为单位的,一行一行读入数据流到其内部的模式空间内处理。

温馨提示:答案为网友推荐,仅供参考
相似回答