如何编写将一个文件的内容插入另一个文件的单行脚本?

时间:2010-04-13 07:17:16

标签: shell

假设我有文件A,其中间有一个标签字符串“#INSERT_HERE#”。我想把文件B的全部内容放到文件A的那个位置。我尝试使用管道来连接这些内容,但我想知道是否有更高级的单行脚本来处理它。

3 个答案:

答案 0 :(得分:3)

cat file | while read line; do if [ "$line" = "#INSERT_HERE#" ]; then cat file_to_insert; else echo $line; fi; done

答案 1 :(得分:2)

$ cat  file
one
two
#INSERT_HERE#
three
four

$ cat  file_to_insert
foo bar
bar foo

$ awk '/#INSERT_HERE#/{while((getline line<"file_to_insert")>0){ print line };next }1 ' file
one
two
foo bar
bar foo
three
four

答案 2 :(得分:1)

使用sed的r命令:

$ cat foo
one
two
#INSERT_HERE#
three
four
$ cat bar
foo bar
bar foo
$ sed '/#INSERT_HERE#/{ r bar
> d
> }' foo
one
two
foo bar
bar foo
three
four