我在一个文件(“ phrases
”)中有一个短语列表,每个文件都在自己的行中。
我还有另一个文件,其中包含一个单词列表,每个单词占一行(“ words
”)。
我希望在“”中的每个短语的末尾附加一个星号phrases
,它以“”中列出的单词开头words
。
例如:
文件“ phrases
”:
gone are the days
hello kitty
five and a half
these apples are green
文件“ words
”:
five
gone
操作后“”中的预期结果phrases
:
gone are the days *
hello kitty
five and a half *
these apples are green
到目前为止我所做的是:
parallel -j0 -a words -q perl -i -ne 'print "$1 *" if /^({}\s.*)$/' phrases
但这会截断文件,有时(并非总是)给我这个错误:
无法删除短语:没有这样的文件或目录,跳过文件。
因为编辑将同时进行,所以我的意图是只搜索和替换那些以单词开头的行,而其他行保持不变。否则parallel
并发执行会互相覆盖。
我也对其他并发方法持开放态度。