Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux 使用“剪切”组合csv文件以选择列,使用“粘贴”组合文件_Linux_Bash_Csv - Fatal编程技术网

Linux 使用“剪切”组合csv文件以选择列,使用“粘贴”组合文件

Linux 使用“剪切”组合csv文件以选择列,使用“粘贴”组合文件,linux,bash,csv,Linux,Bash,Csv,我有一个带有子目录的目录,其中有许多csv文件,有两列(一个单词及其计数)。我想使用诸如剪切和粘贴之类的命令行工具来组合所有这些已排序(按字典顺序)的内容。我需要剪切第二列(count)并将其粘贴到一个组合文件中 我用两个文件很好地实现了这一点: cut -d , -f 2 sorted_2.csv | paste -d , sorted_1.csv > combo_2.csv word1,1187177,1229568 word2,279525,290798 word3,81756,

我有一个带有子目录的目录,其中有许多csv文件,有两列(一个单词及其计数)。我想使用诸如剪切和粘贴之类的命令行工具来组合所有这些已排序(按字典顺序)的内容。我需要剪切第二列(count)并将其粘贴到一个组合文件中

我用两个文件很好地实现了这一点:

cut -d , -f 2  sorted_2.csv | paste -d , sorted_1.csv > combo_2.csv

word1,1187177,1229568
word2,279525,290798
word3,81756,85163...
但是,当我尝试时: 剪切-d,-f 2排序_2.csv排序_3.csv |粘贴-d,排序_1.csv>组合_2.csv

我得到:

word1,1187177,1229568
word2,279525,290798
word3,81756,85163... 
,1187177
,279525
,81756...
新柱堆放在下面,而不是这样:

word1,1187177,1229568,1187177
word2,279525,290798,279525
word3,81756,85163, 81756... 
我试过这个:

paste file1.csv file2.csv file3.csv | cut -f 2 > combo_3.csv
但是把排序过的文件2放回了组合3里面

我做错了什么

谢谢大家

保罗

我想使用命令行工具(如cut和pass)来组合所有已排序的(按字典顺序)。我需要剪切第二列(计数)并粘贴到组合文件中

然后从所有文件中剪切,而不是从一个文件中剪切。并粘贴结果-每个文件剪切一次

paste -d, <(cut -d, -f2 sorted_1.csv) <(cut -d, -f2 sorted_2.csv) <(cut -d, -f2 sorted_3.csv)

paste-d,检查文件中的dos行结尾
我做错了什么?
我不明白,你想做什么?我在那里怎么能在20000个CSV中同时使用这个命令?先取两个文件。合并输出。获取输出和第三个文件。合并输出。获取输出和第四个文件。合并输出。对所有文件重复。我会尝试的。谢谢你的时间。保罗
find ....all_the_files... |
{
    IFS= read -r file1
    cut -d, -f2 "$file1" > output.txt
    while IFs= read -r file; do
        paste -sd, output.txt <(cut -d, -f2 "$file") > output.txt.tmp
        mv output.txt.tmp output.txt
    done
}