【发布时间】:2016-07-29 02:19:29
【问题描述】:
我正在尝试替换所有数字序列,后跟换行符和字母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
我错过了什么?
【问题讨论】:
-
man perlrun表明-p将导致perl为每一行运行您的命令。您不一定可以在一行中替换多行模式。尝试首先使用perl使其正常工作,然后再使用bash部分
标签: regex linux bash perl linefeed