Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/unix/3.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
Unix sort和uniq oneliner_Unix_Awk_Grep - Fatal编程技术网

Unix sort和uniq oneliner

Unix sort和uniq oneliner,unix,awk,grep,Unix,Awk,Grep,在unix中是否有一个文件名为sort和uniq的单行程序? 我在谷歌上搜索发现了以下内容,但它不是排序,也不确定下面的命令在做什么..使用awk或任何其他unix工具有更好的方法吗 cut -d, -f1 file | uniq | xargs -I{} grep -m 1 "{}" file 另一方面,是否有一个可以在windows和unix中使用?这并不重要,只是检查一下 C:\Users\Chola>sort -t "@" -k2,2 email-list.txt 输入文本文件

在unix中是否有一个文件名为sort和uniq的单行程序? 我在谷歌上搜索发现了以下内容,但它不是排序,也不确定下面的命令在做什么..使用awk或任何其他unix工具有更好的方法吗

cut -d, -f1 file | uniq | xargs -I{} grep -m 1 "{}" file
另一方面,是否有一个可以在windows和unix中使用?这并不重要,只是检查一下

C:\Users\Chola>sort -t "@" -k2,2 email-list.txt
输入文本文件:-

436485
422636
429228
427041
433414
425810
422636
431526
428808

如果文件仅包含数字,则每行一个:

sort -n FILENAME | uniq

(您可以将
-u
添加到
排序
命令中,而不是在以下所有操作中通过
uniq
管道。)

如果要仅提取文件的一列,然后对该列进行数字排序以删除重复项,可以执行以下操作:

cut -f7 FILENAME | sort -n | uniq
Cut
假定列之间只有一个选项卡。如果您的文件是CSV,您可以执行以下操作:

cut -f7 -d, FILENAME | sort -n | uniq
但是,如果文件中的文本字段中有一个
(CSV将使用
”来保护它),那么这将不起作用

如果要按列排序,但只删除完全重复的行,则可以执行以下操作:

sort -k7,7n FILENAME | uniq
排序
假定列由空格分隔。同样,如果要使用
分隔,可以使用:

sort -k7,7n -t, FILENAME | uniq

你到底想做什么?“For sort and uniq”不够精确…@rici-我有一个文本文件,其中列中有数字。我想对它们进行排序并删除重复项。你想提取列(它是如何分隔的?),或者你想删除完全重复的行?@rici-我在上面添加了一个示例输入..是的..完全删除重复Sok,我添加了所有通常的方法。请尽量具体地回答问题;这可以为每个人节省很多(猜测)work.f7,-k7,7n代表什么?在
cut
中,
-fN
选择字段
N
。在
sort
中,
-kN,M
使用从字段
N
开始到字段
M
结束的文本作为排序键(因此
-k7,7
正好使用字段7)
n
后缀,与
-n
选项一样,意味着排序键应按数字排序。
man sort
man cut
(通常
man CMD
)更详细地解释了这一切。
sort -k7,7n -t, FILENAME | uniq