【发布时间】:2013-07-31 14:37:03
【问题描述】:
我有一个看起来像这样的数据(我们称这个文件为submit.txt):
dir1/pmid_5409464.txt
dir1/pmid_5788247.txt
dir1/pmid_4971884.txt
我想做的是执行内联文件正则表达式更改 从而导致以下结果
perl mycode.pl /home/neversaint/dir1/pmid_5409464.txt > /home/neversaint/dir1/pmid_5409464.output
perl mycode.pl/home/neversaint/dir1/pmid_5788247.txt > /home/neversaint/dir1/pmid_5788247.output
perl mycode.pl /home/neversaint/dir1/pmid_4971884.txt > /home/neversaint/dir1/pmid_4971884.output
是否有 SED/Perl one liner 可以做到这一点?
我的困难在于捕获输入文件名,然后
为每一行创建输出文件 (.output) - 基于此。我被这个困住了:
sed 's/^/perl mycode.pl \/home\/neversaint\/dir1\//g' submit.txt |
sed 's/$/ >/'
【问题讨论】:
-
awk '{print "xxx/x/y/"$0 "> xxxxxxxx/$0}' list > output?祝你好运。 -
不,那不行。关键是每一行都从
pmid_xxx.txt捕获pmid_xxx并为每一行打印该pmid_xxx.output的输出版本。