为什么sed命令使用正则表达式失败

时间:2018-09-27 19:37:56

标签: bash sed

我正在使用此命令

sed ':a ;{N;/\n/,/};ba'

它在正则表达式中显示错误。请帮助识别此问题。

完整命令

SAMPLE_LIST=$ (ls*fastq.gz| awk -F"_" '{print $1}' | sort | uniq | sed ':a ;{N;/\n/,/};ba')

错误 bash:意外令牌'('

附近的语法错误

类似地,另一个命令。

FILE_List= $(ls merged_reads2/*/*join.fastq | sed ' :a ; {N;/\n/,/};ba')

错误 sed:-e表达式1,字符19:未终止的地址正则表达式

1 个答案:

答案 0 :(得分:0)

在第一种情况下,由于$(之间的间隔,bash在sed不能执行任何操作之前就失败了。 (ls之后也缺少空格。)

sed命令毫无意义:a1,a2是引入“地址范围”的语法。地址可以是一个匹配项,因此/\n/是一个匹配项(永远不会匹配,因为换行符不是sed所匹配的行内容的一部分),但是/不是有效地址。您要匹配什么?