将行转换为两列

将行转换为两列

输入:

IN22FDX_S1P_WWWWBBBBMMMCCCC_ffg_pre_0.59_0_.72_-40_nominal

输出:

IN22FDX_S1P_WWWWBBBBMMMCCCC ffg_pre_0.59_0_.72_-40_nominal
#                          ^
#                space instead of underscore

如何将上面的行转换为两列(删除它们之间的一个下划线)?第一个字是固定长度的IN22FDX_S1P_WWWWBBBBMMMCCCC

答案1

如果第一列具有固定大小,

sed 's/./ /28'

将第 28 个字符替换为空格。

假设数据存储在文件中,您可以使用 sed 就地编辑它。

sed -i.bak 's/./ /28' input_file

注意.bak我添加到-i选项中;它指示 sedinput_file.bak使用提供的后缀创建备份文件。后缀是可选的。

答案2

GNUcut解决方案:

s="IN22FDX_S1P_WWWWBBBBMMMCCCC_ffg_pre_0.59_0_.72_-40_nominal"
cut -c 1-27,29- --output-delimiter=' ' <<<"$s"
  • -c- 选择字符

输出:

IN22FDX_S1P_WWWWBBBBMMMCCCC ffg_pre_0.59_0_.72_-40_nominal

相关内容