我有两个文本文件,我想将文本放在另一个文本中间,我做了一些研究并找到了有关添加单个字符串的信息:
我在名为STUFFGOESHERE的第二个文本文件中有评论,所以我试过了:
sed '/^STUFFGOESHERE/a file1.txt' file2.txt
sed:1:“/ ^ STUFFGOESHERE / a long.txt”:命令a期望\后跟文本
所以我尝试了不同的东西,尝试根据给定的行放置文本的内容,但没有运气。
有什么想法吗?
答案 0 :(得分:5)
这应该这样做:
sed '/STUFFGOESHERE/ r file1.txt' file2.txt
如果你想删除STUFFGOESHERE行:
sed -e '/STUFFGOESHERE/ r file1.txt' -e '/STUFFGOESHERE/d' file2.txt
如果你想修改file2:
sed -i -e...
(或者sed -i '' -e...
,我正在使用GNU sed 4.1.5。)
答案 1 :(得分:2)
如果您可以使用ex或ed,请尝试
cat <<EOF | ex -e - file2.txt
/^STUFFGOESHERE/
.r file1.txt
w
q
EOF
相同的脚本适用于ed:
cat <<EOF | ed file2.txt
/^STUFFGOESHERE/
.r file1.txt
w
q
EOF
答案 2 :(得分:1)
awk '/STUFFGOESHERE/{while((getline line<"file1")>0){ print line};next}1' file2
答案 3 :(得分:1)
从Unix shell(bash,csh,zsh,等等):
: | perl -e '@c = join("", map {<>} 0..eof); print $c[0] =~ /STUFFGOESHERE/ ? $` . $c[1] . $'"'"' : $c[0]' file2.txt file1.txt > newfile2.txt