2014-09-28 115 views
0

我想知道是否有人可以用这个sed正则表达式来帮助我。Sed正则表达式?

我会把整个代码:

for w in ./tmp/horse_F3.csfasta; do 
    sed -n '/^>/!{H;$!b};s/$/ /;x;1b;s/\n//g;p' ${w} > ${w}.flat 
done 
+0

你似乎在使用fasta格式的文件。您的预期投入和预期产出是多少?该文件的一个或两个块(>标题+数据块)很好。 – 2014-09-28 00:56:46

+0

你问我们编辑它吗?或者你是要求我们告诉你它做了什么? – Goodies 2014-09-28 00:59:10

+0

说实话我不知道会发生什么......我正在学习和脚本,格式化csfasta文件到平面文件(无论这意味着什么)......我真的不知道这个正则表达式的含义...我知道只是关于正则表达式。 – 2014-09-28 01:01:03

回答

2
sed -n 

不要打印,除非告知。

'/^>/!{H;$!b}; 

如果该行不以“>”开始,该行添加到保留空间,然后如果它不是文件的最后一行,则跳转到脚本的末尾(即启动结束下一行)。

s/$/ /; 

在行尾添加一个空格。

x; 

用保持空间的内容交换行。

1b; 

如果我们在第一线工作(即,如果这是第一次通过脚本),然后跳转到脚本的末尾。

s/\n//g; 

从我们正在处理的东西中删除所有换行(\n)。也就是说,如果它是几行(来自保存空间),将它们变成一行。

p' 

可以打印出来。

+0

哇!非常感谢!!!这真的帮助了我! – 2014-09-30 19:30:49