【发布时间】:2015-04-12 01:33:57
【问题描述】:
我是 Bash 命令行使用的新手,需要知道在现有单引号中使用单引号的正确语法。
ls *file.fa | parallel -j4 'perl -pe 's/^>/>{}/' {} >newfile_{}'
我知道 GNU 并行命令并不是特别为人所知或使用的,但我认为对于需要单引号内的单引号的不同命令,语法不会有所不同。该命令是在名为 file.fa 的文件中将 > 更改为 >file.fa(> 然后是文件名),其中 {} 合并了从 ls *file.fa 部分通过管道传输的文件。
非常感谢任何帮助
【问题讨论】:
-
试试
'perl -pe "s/^>/>{}/" {} >newfile_{}' -
单引号不嵌套。开始你的
sed命令的单引号实际上是关闭以'perl开头的字符串,等等。要么像@AvinashRaj 建议的那样交换引号,要么使用'\''来“转义”内部单引号。 -
非常感谢 - 用一对单引号代替双引号工作
-
还值得注意的是,现代 GNU xargs(带有
-P)具有足够的功能,通常使 GNU 并行的混乱变得不必要。
标签: regex bash command-line quotes gnu-parallel