Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/18.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
在bash中的特定文件列中查找重复项_Bash_Unix_Awk - Fatal编程技术网

在bash中的特定文件列中查找重复项

在bash中的特定文件列中查找重复项,bash,unix,awk,Bash,Unix,Awk,我试图在文件的第9列中找到重复项: 我尝试使用以下代码。我面临语法错误。你能帮忙吗 feed="09SPP" key=${feed:0:2} echo $key m = `sort SPP_OUT | awk -v tk=$key '{dup[tk]++} END { for (i_1 in dup) if (dup[i_1]>1) print i_1;}'` echo $m 这是错误的: m = `sort SPP_OUT | awk -v tk=$key '{dup[tk]++} E

我试图在文件的第9列中找到重复项: 我尝试使用以下代码。我面临语法错误。你能帮忙吗

feed="09SPP"
key=${feed:0:2}
echo $key
m = `sort SPP_OUT | awk -v tk=$key '{dup[tk]++}
END { for (i_1 in dup) if (dup[i_1]>1) print i_1;}'`
echo $m
这是错误的:

m = `sort SPP_OUT | awk -v tk=$key '{dup[tk]++}
END { for (i_1 in dup) if (dup[i_1]>1) print i_1;}'`
=
周围有空格,行中有新行

有些人喜欢这样:

m=`sort SPP_OUT | awk -v tk=$key '{dup[tk]++} END { for (i_1 in dup) if (dup[i_1]>1) print i_1;}'`
或者更好的是,不要使用旧的和不推荐的back tics,使用括号

m=$(sort SPP_OUT | awk -v tk=$key '{dup[tk]++} END { for (i_1 in dup) if (dup[i_1]>1) print i_1;}')
Wy使用变量
i_1
?使其难以阅读,只需使用
i
并删除最后一个

m=$(sort SPP_OUT | awk -v tk=$key '{dup[tk]++} END { for (i in dup) if (dup[i]>1) print i}')

@Madan如果您想测试
在文本中是否有多个点击,请执行以下操作:

m=$(awk -v tk="$key" '$0~tk {a++} END {if (a>1) print a}' SPP_OUT)

要测试
n
行是否有重复项:

awk -v tk="$key" '++a[$(tk+0)]==2 {f=1} END {if (f) print "yes"}' file
如果
key=09
它现在将测试列
9
是否有重复项。如果是,请打印
yes


tk+0
用于删除前导零,因此
09
变为
9

我能够执行该命令。但我得到的是列值09。但是我没有得到重复值。@Madan编辑您的原始帖子,添加示例数据,以及您希望的输出结果。@Madan您没有测试任何东西,所以
{dup[tk]+}
这一直都是正确的。如果
key
pattern
,则每行都会得到一个变量
dup[pattern]
增量。是否要测试行是否为
模式
内,然后递增?谢谢。但仍然面临着这个问题。我用了你的密码;分类输入也。还是没能拿到
m=$(awk-v tk=“$key””$0~tk{a++}END{如果(a>1)打印a}'SPP|u OUT | sort-n-t'|''-k9)
@Madan因为我不知道SPP|u OUT中有什么,也不确定你喜欢从中得到什么,这很难帮助。在我上一篇文章中,
m
的PS输出仅仅是一个数字,在文本中找到了多少次
key
。不需要只对一个数字进行排序。还请让我知道上述查找重复项的逻辑是否正确