![如何将命令的输出附加到文件并进行排序?](https://linux22.com/image/1051009/%E5%A6%82%E4%BD%95%E5%B0%86%E5%91%BD%E4%BB%A4%E7%9A%84%E8%BE%93%E5%87%BA%E9%99%84%E5%8A%A0%E5%88%B0%E6%96%87%E4%BB%B6%E5%B9%B6%E8%BF%9B%E8%A1%8C%E6%8E%92%E5%BA%8F%EF%BC%9F.png)
我正在尝试使用 tshark 从 pcap 文件中提取 http 用户名和密码,然后将它们保存在文本文件中。稍后,如果我想向该文本文件添加更多元组,它不仅应该添加新元组,还应该就地删除重复项(如果有)。我写的命令是-
tshark -nr new.pcap.pcapng -T fields -e http.authbasic -Y "http.proxy_authorization" | sort | uniq >> pass.txt | sort | uniq
但它只是将 pcap 文件的排序后的不同输出附加到 pass.txt 文件中,然后不会按要求再次对文件进行排序。我应该对上面的代码进行哪些更改才能实现这一点?
答案1
将数据附加到文件和命令,然后在单独的操作中对文件进行排序和唯一化:
tshark -nr new.pcap.pcapng -T fields -e http.authbasic -Y "http.proxy_authorization" >> pass.txt
sort -o pass.txt -u pass.txt
sort
uniq
可以完成(使用选项)的工作-u
。通过指定输出文件(-o
)与输入文件同名,sort
将用排序后的唯一输出替换文件的内容。