bash - 如何从bash脚本中将换行符传递给perl?

时间:2016-07-28 17:15:38

标签: regex linux bash perl linefeed

我正在尝试替换所有数字序列,后跟换行符和字母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

我错过了什么?

1 个答案:

答案 0 :(得分:1)

您甚至不需要grep,因为它只是匹配.+,只需使用perl-0777选项(slurp模式)来匹配不同的行:< / p>

#!/bin/bash

MY_VAR="\d+
a"

perl -0777pe "s/$MY_VAR/D/g" test.txt

<强>输出:

D1
bD