使用 sed 向文本中追加变量内容

2023-02-21 22:20:44 +08:00
 wanchenyi

在 shell 脚本中,有一个变量 test="fashfhasf",这里只是举例的,test 的内容是前面的程序生成 的,请问我如何把变量的追加到某个文件的最后一行,在网上查到了 sed 追加的内容的命令,但我这个由于嵌入了变量 ,尝试了几次都没有搞定,拜求各位指点哈

906 次点击
所在节点    问与答
4 条回复
zbinlin
2023-02-21 23:16:00 +08:00
为什么用重定向来追加呢:
echo -n "$test" >> FILENAME
junyee
2023-02-22 09:00:56 +08:00
#_#
把问题想复杂了,1# 的多好用.

或者你非要复杂化:
`a="are you ok?" echo "hello!"|sed "a $a"`
huntagain2008
2023-02-22 09:50:25 +08:00
小白翻开书,sed 最常用的是处理输入流的文本替换,通常是作为管道的一部分。用 sed 去追加文本,1983 年都用的少,我想应该就跟 ed 编辑器一样,很少人用了,而且 sed 就是由 ed 过渡过来的。

入门里讲到重定向与管道,以>>附加到文件。program >> file 可将 program 的标准输出附加到 file 的结尾处。如果目的文件不存在,>>重定向符便会新建一个。然而,如果目的文件存在,它不会直接覆盖掉文件,而是将程序所产生的数据附加到文件结尾处:

for f in dos-file*.txt
do
tr -d '\r' < $f >> big-UNIX-file.txt
done
wanchenyi
2023-02-22 11:18:41 +08:00
@zbinlin @junyee 重定向我已经知道的,当时是想了解如何正确在 sed 中使用变量中的内容。感谢大家的回复

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/918063

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX