sed使用变量问题
shell脚本中,会生成一个变量,最终的值形式如下: test="fsfafafdafafsf",如何使用sed把它追加到文件最后一行,我知道可以用>>实现。 sed与awk(第二版).pdf 还没时间 看呢,里边很详细哟~~ 用sed "\$a$test" xxx就行了,$a表示最后一行,$test是你的变量jidesheng6 发表于 2023-2-22 18:11
用sed "\$a$test" xxx就行了,$a表示最后一行,$test是你的变量
感谢 ,我知道 $a表示最后一行,如果test="sfsf", 可以用单引号
root@a91562519d64:/# test="meiyoukongge"
root@a91562519d64:/# echo $test
meiyoukongge
root@a91562519d64:/# sed "$a $test" test.txt
sed: -e expression #1, char 2: unknown command: `m'
root@a91562519d64:/# sed "$a\$test" test.txt
sed: can't find label for jump to `est'
root@a91562519d64:/# sed '$a'$test'' test.txt
fsdhfasfdasfsdhfasfdas
test imya
meiyoukongge
root@a91562519d64:/ jidesheng6 发表于 2023-2-22 18:11
用sed "\$a$test" xxx就行了,$a表示最后一行,$test是你的变量
没有明白 为什么要在$a加个\,谷歌搜索也没有搜到,可能是搜索的方式不对。 Cellluo 发表于 2023-2-22 20:42
没有明白 为什么要在$a加个\,谷歌搜索也没有搜到,可能是搜索的方式不对。
stackoverflow有个帖子解释的,好像是为了防止把$a也解析为变量,因为这是sed的特殊变量 Cellluo 发表于 2023-2-22 20:42
没有明白 为什么要在$a加个\,谷歌搜索也没有搜到,可能是搜索的方式不对。
你把\取消掉,他会报个错,然后报错搜一下,第一条应该就是stackoverflow的帖子 jidesheng6 发表于 2023-2-23 09:15
你把\取消掉,他会报个错,然后报错搜一下,第一条应该就是stackoverflow的帖子
感谢,你解决了我的问题
页:
[1]