我已按照这篇文章中的说明进行操作。如何在文件中的某个字符串后插入文本?
但我怀疑这些说明不适用于OSX。
我想使用Bash将一些文本添加到源文件中
sed '/pattern/a some text here' ${sourceFile}
但是当我运行命令时
“ / pattern / a some text here”:命令a期望\,后跟文本
编辑
我创建了一个新文件infile
,用一行
pattern
和一个bash脚本
#!/bin/bash
sed '/pattern/a\
text to insert' infile
运行脚本将“模式”回显到控制台,但不插入文本
编辑
我也尝试过bash脚本
#!/bin/bash
sed '/pattern/a\
add one line\
\\and one more' infile
和终端回声
pattern
add one line
\and one more
但是infile仍然只有一行
pattern
我不确定OSX是否具有ed
(找到一个肯定的提示),因此这是另一种选择:
grep -q pattern infile && ed -s infile <<< $'/pattern/\na\ntext to insert\n.\nw\nq' > /dev/null
这会将以下命令发送到ed
:
/pattern/
-搜索“模式”a
-在该行之后添加以下文本text to insert
- 文本.
-插入文字的结尾w
-将更新的文件写入磁盘q
-退出该>/dev/null
重定向是沉默ed
的匹配的报告pattern
线。
我已经为前缀的ed
命令与安静grep
,以保证前问的文件在“模式”的存在ed
寻找它-否则,你会得到一个混淆?
从ed
当模式搜索失败。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句