2

假设我有以下输入:

BSCTMC             A13728,  J02448,  L13668,  M14730,  A12868,  C11347,
                   L14203,  C02285,  A14419,  BO0797,  S12666,  M12653,
                   D04841,  S02825,  T14713,  L15004,  C01972,  E12057,
                   S13319

我希望 A13728、J02448(等等)到 S13319 在同一行上。我想创建一个将其保存到文本文件的脚本。谢谢你的帮助。

4

4 回答 4

1

你可以很容易地做到这一点:

tr -d '\n' < filename.txt > filename-oneline.txt; mv filename-oneline.txt filename.txt
于 2013-05-08T04:41:12.853 回答
1

您可以使用 sed 执行此操作,方法是仅在行以逗号结尾时替换换行符(GNU sed):

sed ':a; /,$/ { N; ba }; s/\n//g' infile

如果您还想压缩对齐中的空白,请添加s/, */, /g到 sed 表达式,即:

sed ':a; /,$/ { N; ba }; s/\n//g; s/,   */  /g' infile

输出:

BSCTMC             A13728,  J02448,  L13668,  M14730,  A12868,  C11347,  L14203,  C02285,  A14419,  BO0797,  S12666,  M12653,  D04841,  S02825,  T14713,  L15004,  C01972,  E12057,  S13319
于 2013-10-02T16:27:37.413 回答
1

简单地:

$ xargs < infile > outfile
于 2013-10-02T16:27:38.243 回答
0

如果您不关心中间的空间,您可以使用awk

awk '{printf "%s", $0}' inputfile > outputfile

结果 :

BSCTMC             A13728,  J02448,  L13668,  M14730,  A12868,  C11347,                   L14203,  C02285,  A14419,  BO0797,  S12666,  M12653,                   D04841,  S02825,  T14713,  L15004,  C01972,  E12057,                   S13319
于 2013-10-02T16:18:32.900 回答