V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
wanchenyi
V2EX  ›  问与答

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

  •  
  •   wanchenyi · 2023-02-21 22:20:44 +08:00 · 879 次点击
    这是一个创建于 641 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

    4 条回复    2023-02-22 11:18:41 +08:00
    zbinlin
        1
    zbinlin  
       2023-02-21 23:16:00 +08:00
    为什么用重定向来追加呢:
    echo -n "$test" >> FILENAME
    junyee
        2
    junyee  
       2023-02-22 09:00:56 +08:00
    #_#
    把问题想复杂了,1# 的多好用.

    或者你非要复杂化:
    `a="are you ok?" echo "hello!"|sed "a $a"`
    huntagain2008
        3
    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
        4
    wanchenyi  
    OP
       2023-02-22 11:18:41 +08:00
    @zbinlin @junyee 重定向我已经知道的,当时是想了解如何正确在 sed 中使用变量中的内容。感谢大家的回复
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2637 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 05:53 · PVG 13:53 · LAX 21:53 · JFK 00:53
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.