sed - 在字符对之间插入空格 - sed

标签 sed awk

另一个 sed 问题!我有成对的核苷酸数据

1 Affx-14150122 0 75891 00 CT TT CT TT CT 

按空格分割,我需要在每一对中添加一个空格,例如

1 Affx-14150122 0 75891 0 0 C T T T C T T T C T 

我已经尝试过sed 's/[A-Z][A-Z]/ &/g'sed 's/[A-Z][A-Z]/& /g'

两者都是A-Z替换为 ..它永远不会像我希望的那样分割这对(它在之前或之后放置空格,或者分割所有其他对或类似的!)。

最佳答案

我认为这对您有用,但它并不完美!

echo "1 Affx-14150122 0 75891 00 CT TT CT TT CT" | \
  sed 's/\(\s[A-Z]\)\([A-Z]\)/\1 \2/g'

给出

1 Affx-14150122 0 75891 00 C T T T C T T T C T

sed 's/\(\s[A-Z]\)\([A-Z]\)/\1\2/g' 匹配空白 (\s ) 大写字符 ([A-Z]),将其放入组 (\(...\)),然后匹配大写字符并将其存储在第二个中团体。然后该匹配被第一组 (\1) 替换为第二组 (\2)。

注意:
当序列长度超过 2 个字符时,此操作会失败。

关于sed - 在字符对之间插入空格 - sed,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11984884/

相关文章:

linux - 我怎样才能找到包含多个模式的文件

linux - 如何打印由 sed/awk 更改的行号

php - 用 <?php 替换 PHP 短打开标签的批处理脚本

linux - 当直接从终端运行时,Bash 脚本不会为命令打印相同的输出

bash - 如何使用 bash 替换 csv 文件中特定位置的字符串

linux - Awk、tail、sed 或其他——对于大文件,哪个更快?

正则表达式一个参数数目未知的字符串

unix - 如何在文件中搜索模式并在命令行上删除 Unix 中的行?

perl - 命令截断文件中带引号的字符串?

awk:将 2 个 csv 文件合并为 1 个