shell 将字符串替换为\n不是换行符,但缺少斜杠[重复]

khbbv19g  于 2023-01-05  发布在  Shell
关注(0)|答案(2)|浏览(286)
    • 此问题在此处已有答案**:

Replace newlines with literal \n(6个答案)
2小时前关门了。
a.txt:

^variable=test\n

a.sh

#!/bin/ksh  
string=aAxdf\ndafsfasdf\n   
sed -i '/\^variable=/c\^variable='"$string"'' a.txt

输出:a.txt包含以下内容,不带斜杠

^variable=aAxdfndafsfasdfn

预期产出:

^variable=aAxdf\ndafsfasdf\n
0s7z1bwu

0s7z1bwu1#

在赋值变量时给字符串加上引号,并将反斜杠加倍,这样它们就不会被sed解释为换行符:

#!/bin/ksh  
string='aAxdf\\ndafsfasdf\\n'
sed -i '/\^variable=/c\^variable='"$string"'' a.txt
0h4hbjxa

0h4hbjxa2#

在a.sh文件中,您需要执行以下操作:
1.引用你的变量赋值。
1.使用转义字符\对斜杠进行转义
它看起来像string='aAxdf\\ndafsfasdf\\n'

相关问题