【发布时间】:2014-02-03 22:17:25
【问题描述】:
大家好,我的数据如下所示
samplename 0 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 ...
samplename2 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 0 0 0 ...
我希望它看起来像这样:
>samplename
0 1 1 1 1 1 1 1 1 1
1 0 0 0 0 0 0 0 0 ...
>samplename2
0 0 0 0 0 1 1 1 1 1
1 1 1 1 1 1 0 0 0 ...
[注意 - 每 10 位数字后显示一个换行符;我实际上每 200 次之后就想要它,但我意识到显示这样的线不会很有帮助]。
我可以在文本编辑器上使用正则表达式来完成,但我想在 bash 中使用 sed 命令,因为我必须多次执行此操作,并且每行需要 200 个字符。
我试过了,但是出错了:
sed -e "s/\(>\w+\)\s\([0-9]+\)/\1\n\2" < myfile > myfile2
sed: 1: "s/(>\w+)\s([0-9]+)/ ...": 替代模式内未转义的换行符
还有一点需要注意 - 我在 Mac 上执行此操作;我知道 Mac 上的 sed 与 gnu sed 有点不同。如果您能给我提供适用于 Mac 的解决方案,那就太好了。
提前致谢。
【问题讨论】:
-
你能解释一下“我需要每行200个字符”是什么意思吗,还有其他条件你没有告诉我们吗?
-
使用“每行 10 个字符”而不是 200 发布一些示例输入和预期输出。您无需了解 200 是如何工作的就能够适应使用10.