Cellluo 发表于 2023-2-22 16:35

sed使用变量问题

shell脚本中,会生成一个变量,最终的值形式如下: test="fsfafafdafafsf",如何使用sed把它追加到文件最后一行,我知道可以用>>实现。

冥界3大法王 发表于 2023-2-22 17:53

sed与awk(第二版).pdf 还没时间 看呢,里边很详细哟~~

jidesheng6 发表于 2023-2-22 18:11

用sed "\$a$test" xxx就行了,$a表示最后一行,$test是你的变量

Cellluo 发表于 2023-2-22 20:41

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:/

Cellluo 发表于 2023-2-22 20:42

jidesheng6 发表于 2023-2-22 18:11
用sed "\$a$test" xxx就行了,$a表示最后一行,$test是你的变量

没有明白 为什么要在$a加个\,谷歌搜索也没有搜到,可能是搜索的方式不对。

jidesheng6 发表于 2023-2-23 09:13

Cellluo 发表于 2023-2-22 20:42
没有明白 为什么要在$a加个\,谷歌搜索也没有搜到,可能是搜索的方式不对。

stackoverflow有个帖子解释的,好像是为了防止把$a也解析为变量,因为这是sed的特殊变量

jidesheng6 发表于 2023-2-23 09:15

Cellluo 发表于 2023-2-22 20:42
没有明白 为什么要在$a加个\,谷歌搜索也没有搜到,可能是搜索的方式不对。

你把\取消掉,他会报个错,然后报错搜一下,第一条应该就是stackoverflow的帖子

Cellluo 发表于 2023-2-23 15:14

jidesheng6 发表于 2023-2-23 09:15
你把\取消掉,他会报个错,然后报错搜一下,第一条应该就是stackoverflow的帖子

感谢,你解决了我的问题
页: [1]
查看完整版本: sed使用变量问题