我正在嘗試使用以下代碼嘗試在第9列文件中找到重複項: 。我面臨語法錯誤。你能幫忙嗎?在bash文件的特定列中找到重複項
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
我正在嘗試使用以下代碼嘗試在第9列文件中找到重複項: 。我面臨語法錯誤。你能幫忙嗎?在bash文件的特定列中找到重複項
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;}'`
甚至更好,沒有使用過時且不適用背抽動,使用括號。
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如果你想測試,如果key
在文本超過一重擊,這樣做:
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
也讓我知道,如果上述邏輯來查找重複正確 – Madan 2015-03-02 07:16:01