gpt4 book ai didi

linux - 每行计算文件中的唯一元素

转载 作者:塔克拉玛干 更新时间:2023-11-03 02:00:25 24 4
gpt4 key购买 nike

假设我有一个文件,每行有 5 个元素。

$ cat myfile.txt

e1 e2 e3 e4 e5
e1 e1 e2 e2 e1
e1 e1 e4 e4 e4

对于每一行,我想执行以下命令来计算每一行上的唯一元素。:

tr \\t \\n | sort -u | wc 

我无法理解命令的第一部分 - 有人可以帮我吗?

免责声明:该文件确实如下所示 - 但我执行 xargs -L 5 以获得如第一部分所示的输出。

e1
e2
e3
e4
e5

最佳答案

给定你的输入文件:

$ cat file
e1 e2 e3 e4 e5
e1 e1 e2 e2 e1
e1 e1 e4 e4 e4

使用 awk 的文件中的独特元素:

awk '{for(i=1;i<=NF;i++) a[$i]} END{for (keys in a) print keys}' 
e1
e2
e3
e4
e5

文件中使用 grep 而不是 tr 的唯一元素:

$ grep -Eo '\w+' file | sort -u
e1
e2
e3
e4
e5

文件中每行的唯一元素:

使用awk:

$ awk '{for(i=1;i<=NF;i++) a[$i]; print length(a); delete a}' file
5
2
2

awk 解决方案真的是去这里的方式,但是使用 bash 因为你标记了它:

#!/bin/bash

while read line; do
echo $line | grep -Eo '\w+' | sort -u | wc -l
done < file

输出:

5
2
2

关于linux - 每行计算文件中的唯一元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13721860/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com