流水线切割排序 uniq

Pipelining cut sort uniq

试图从 sam 文件中获取某个字段,对其进行排序,然后查找文件中唯一数字的数量。我一直在努力:

cut -f 2 practice.sam > field2.txt | sort -o field2.txt sortedfield2.txt |  
uniq -c sortedfield2.txt

剪切正在努力从字段 2 中提取数字,但是当尝试将数字分类到新文件或同一文件中时,我只是得到一个空白。我曾尝试将管道分成几个部分,但仍然出现相同的错误。我打算使用这三个函数来实现输出计数。

使用

cut -f 2 practice.sam | sort -o | uniq -c

在您的原始代码中,您将 cut 的输出重定向到 field2.txt,同时尝试将输出传输到 sort。那行不通(除非您使用 tee)。要么将命令分隔为单独的命令(例如,使用 ;),要么不将输出重定向到文件。

下半部分也是如此,您将输出写入 sortedfield2.txt,因此最终没有任何内容进入 stdout,也没有任何内容通过管道传输到 uniq

所以替代方案可以是:

cut -f 2 practice.sam > field2.txt ; sort -o field2.txt sortedfield2.txt ; uniq -c sortedfield2.txt

相同
cut -f 2 practice.sam > field2.txt 
sort -o field2.txt sortedfield2.txt 
uniq -c sortedfield2.txt

你可以使用这个命令:

cut -f 2 practise.sam | uniq | sort > sorted.txt

你的代码是错误的。错误是"No such file or directory"。因为管道。您可以在此了解 link 它是如何使用的

https://www.guru99.com/linux-pipe-grep.html