【问题标题】:How to extract one column from multiple files and paste them columwise into a new file如何从多个文件中提取一列并将它们按列粘贴到新文件中
【发布时间】:2016-12-16 15:05:55
【问题描述】:

输入文件名如下所示: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 列输入附加到输出文件的一列中。有什么想法吗?

【问题讨论】:

    标签: unix cygwin paste cut file-processing


    【解决方案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
    

    【讨论】:

    • 非常感谢!在完全重新安装 cygwin 并在所有文件上运行 dos2unix 后,我现在可以正常工作了。它不仅是输入,而且还是一个不可见的换行符.....
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-25
    • 1970-01-01
    • 2021-03-31
    • 1970-01-01
    相关资源
    最近更新 更多