如何从多个文件中提取一列并将它们按顺序粘贴到新文件中

时间:2016-12-16 15:05:55

标签: unix cygwin paste cut file-processing

输入文件名如下所示:1012232U1_000n_1012232U1.TXT,其中n = 1 ... n并包含由不同的分隔符分隔的五个列

200,00; 441,080; 353,651; 404,764;212,94154 201,00; 413,333; 402,073; 422,487;55,48304 202,00; 449,286; 347,365; 413,185;142,21558 203,00; 432,591; 387,947; 397,659;88,41888 204,00; 424,122; 363,040; 401,541;146,12162 205,00; 441,245; 380,924; 417,946;159,18871 206,00; 425,077; 350,233; 415,756;124,92821 207,00; 442,539; 376,096; 418,468;129,83518

我想提取每个文件的最后一列,然后将它们粘贴到一个新文件中,而不是追加。它应该是这样的:

`212,94154;201,61297;...
55,48304;34,53536;...
...;...;...`

我为我的96个文件尝试$ cut -c39-48 1012232U1_{0001..0096}_1012232U1.TXT | paste -d';' > combinedoutput.txt -但是切割输入似乎有问题,因为无论我如何指定粘贴,它总是将所有fith colum输入附加到输出文件的一列中。有什么想法吗?

1 个答案:

答案 0 :(得分:1)

您需要先提取所有最后一列,以便粘贴可以正确加入它们 试试这个:

# Extract last columns into temp files.
for f in 1012232U1_{0001..0096}_1012232U1.TXT ; do
    cut -c39-48 "$f" > "$f.tmp"
done
# Join temp files.
paste -d';' 1012232U1_{0001..0096}_1012232U1.TXT.tmp > combinedoutput.txt