linuxbash从文件的每一行中剪切第一个单词,将其分配给一个数组并删除重复的单词



所以我相信我的标题解释了我要做的事情。现在我正在剪切并呼应第一个有效的单词,我现在只需要删除重复的单词。。。我想把它分配给一个数组的原因是,我可以组合所有元素,并创建一个逗号分隔的值字符串,我可以把它放在一个新文件中。也许有一种简单的方法可以实现我想要做的事情。我是bash脚本的新手,所以我很感激任何帮助。

感谢

这是我到目前为止的代码

#!/bin/bash
cut -d' ' -f1 $1
cut -d' ' -f1 $1 | sort |  uniq | paste -sd,

一个awk一行可以完成所有

awk '!a[$1]{} END{for (i in a) print i}' file > output

此awk命令创建一个数组a(唯一),并仅在数组中不存在$1时插入它。最后在END部分打印出唯一单词列表。

PS:如果单词的顺序很重要(根据它们在文件中的外观):

awk '!($1 in a){a[$1];b[++i]=$1} END{for (k=1; k<=i; k++) print b[k]}' file

相关内容

  • 没有找到相关文章