gpt4 book ai didi

sed - 如何让 sed 从管道中获取输入,并插入到文件中

转载 作者:行者123 更新时间:2023-12-01 09:10:05 25 4
gpt4 key购买 nike

是否可以使用管道将上一个命令的输出重定向到 sed,并让 sed 使用它作为输入(模式或字符串)来访问文件?

我知道如果你只使用 sed,你可以使用类似的东西

sed -i '1 i\anything' file

但是我可以做类似的事情吗
head -1 file1 | sed -i '1 i\OutputFromPreviousCmd' file2

这样,我不需要每次都手动复制输出并更改 sed 命令

更新:
添加了我的意思的文件
head -3 file1.txt
Side A,Age(us),mm:ss.ms_us_ns_ps
84 Vendor Specific, 0000000009096, 0349588242
84 Vendor Specific, 0000000011691, 0349591828

head -3 file2.txt
84 Vendor Specific, 0000000000418, 0349575322
83 Vendor Specific, 0000000002099, 0349575343
83 Vendor Specific, 0000000001628, 0349576662

我想获取file1的第一行并将其插入到file2中,因此结果应该是:
head -3 file2.txt
Side A,Age(us),mm:ss.ms_us_ns_ps
84 Vendor Specific, 0000000000418, 0349575322
83 Vendor Specific, 0000000002099, 0349575343
83 Vendor Specific, 0000000001628, 0349576662

最佳答案

head -1 file1 | sed '1s/^/1i /' | sed -i -f- file2
这需要你的一行输出,在 sed 前面加上 1i命令,使用 -f- sed 命令流到 sed 的管道从标准输入中获取 sed 命令。

例如:

$ echo bob > bob.txt
$ echo alice | sed '1s/^/1i /' | sed -i -f- bob.txt
$ more bob.txt
alice
bob

这看起来像管道而不是以 > temp ; mv temp file2 结尾的命令,但是当 -i 时 sed 仍然这样做用来。

关于sed - 如何让 sed 从管道中获取输入,并插入到文件中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58033160/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com