相关疑难解决方法(0)

sed/bash 区别对待左右方括号

我有一个包含以下内容的文件:

[root@server list]# cat filenames.txt
[AAA','ACMEDEMO2','ACMEDEMO3','ACMEDEMO4','RENTCOGH','TESTENT','DORASINE','LOKAWINK','BBB]
[root@qa4app01 list]#
Run Code Online (Sandbox Code Playgroud)

我想这是一个名单,我python脚本使用,所以我试图改变AAA''AAA''BBB'BBB',我想我会用sed和替换[[']']

为了确认,我试过这个:

[root@server list]# cat filenames.txt | sed "s/]/']/g"
[AAA','ACMEDEMO2','ACMEDEMO3','ACMEDEMO4','MENSCOGH','TESTENT','DORASINE','LOKAWINK','BBB']
[root@server list]#
Run Code Online (Sandbox Code Playgroud)

它起作用了,我能够]']. 因此,因为AAA我只需要更改用左方括号替换右方括号和 sed 中的单引号并尝试以下操作:

[root@server list]# cat filenames.txt | sed -e "s/]/']/g" -e "s/[/['/g"
sed: -e expression #2, char 8: unterminated `s' command
[root@server list]#
Run Code Online (Sandbox Code Playgroud)

好的。我认为由于某种原因附加sed命令无法正常工作,为了检查这一点,我分别尝试sed了左方括号:

[root@server list]# cat filenames.txt | sed …
Run Code Online (Sandbox Code Playgroud)

shell bash sed quoting

5
推荐指数
1
解决办法
1万
查看次数

标签 统计

bash ×1

quoting ×1

sed ×1

shell ×1