我正在尝试替换所有数字序列,后跟换行符和字母a
。这些数字序列位于名为test.txt
的文件中。 bash脚本command.sh
用于执行任务(见下文)。
的test.txt
00
a1
b2
a
command.sh
#!/bin/bash
MY_VAR="\d+
a"
grep -P "^.+$" test.txt | perl -pe "s/$MY_VAR/D/";
当我调用command.sh
文件时,我看到的是:
$ ./command
00
a1
b2
a
但是,我期待这个输出:
$ ./command
D1
bD
我错过了什么?
答案 0 :(得分:1)
您甚至不需要grep
,因为它只是匹配.+
,只需使用perl
和-0777
选项(slurp模式)来匹配不同的行:< / p>
#!/bin/bash
MY_VAR="\d+
a"
perl -0777pe "s/$MY_VAR/D/g" test.txt
<强>输出:强>
D1
bD