在Shell脚本中反复从列中过滤出值

时间:2018-08-13 13:54:59

标签: shell unix scripting

在这里

shell scipt新手。我在一个文件夹中有一组csv文件,我想要的是以迭代方式从每个文件中选择1000个不同的用户ID,以便从下一个文件中选取的下一组用户ID不包含从中过滤出的用户ID。以前的文件。我从第一个文件中选择了1000个不同的用户ID,并将其存储在临时文件中。下面是命令:

sort -u -t, -k1,8 file1.csv|head -1000 > temp.txt

此处8是用户ID列。现在,我想要来自file2的下一个1000个用户ID,以便将来自file1(存储在temp.txt中)的用户ID从file2中排除。有没有达到此目的的优雅方法?

1 个答案:

答案 0 :(得分:0)

-k1,8使用第一列,然后使用第八列。您不想只使用-k8吗? 根据您的问题,尝试:

cut -d"," -f 8 file2.csv | grep -v -f temp.txt | sort -u | head -1000 > temp2.txt 

顺便说一句,您可以按以下顺序使用通配符:sort -u -t, -k8 file*.csv | head ...