0

次のコメントがあります。

(for i in 'cut -d "," -f1 file.csv | uniq`; do var =`grep -c $i file.csv';if (($var > 1 )); then echo " you have   the following repeated numbers" $i ; fi ; done)

私が得る出力は次のとおりです。 次の繰り返し番号があります 455 次の繰り返し番号があります 879 次の繰り返し番号があります 741

私が欲しいのは次の出力です:

                        you have the following repeated numbers:
                        455
                        879
                        741
4

2 に答える 2

0

さて、ここに私が来たものがあります:

1) テスト用に生成された入力

for x in {1..35},aa,bb ; do echo $x ; done > file.csv 
for x in {21..48},aa,bb ; do echo $x ; done >> file.csv 
for x in {32..63},aa,bb ; do echo $x ; done >> file.csv
unsort file.csv > new.txt ; mv new.txt file.csv 

2)あなたの行(構文エラーを修正)

dtpwmbp:~ pwadas$ for i in $(cut -d "," -f1 file.csv | uniq); 
do var=`grep -c $i file.csv`; if [ "$var" -ge 1 ] ; 
 then echo " you have the following repeated numbers" $i ; fi ; done | head -n 10 

you have the following repeated numbers 8
you have the following repeated numbers 41
you have the following repeated numbers 18
you have the following repeated numbers 34
you have the following repeated numbers 3
you have the following repeated numbers 53
you have the following repeated numbers 32
you have the following repeated numbers 33
you have the following repeated numbers 19
you have the following repeated numbers 7
dtpwmbp:~ pwadas$ 

3)私の行:

dtpwmbp:~ pwadas$ echo "you have the following repeated numbers:";  
 for i in $(cut -d "," -f1 file.csv | uniq); do var=`grep -c $i file.csv`; 
  if [ "$var" -ge 1 ] ; then echo $i ; fi ; done | head -n 10 
you have the following repeated numbers:
8
41
18
34
3
53
32
33
19
7

dtpwmbp:~ pwadas$

引用符を追加し、if() を [..] 式に変更し、最後に説明文をループから外しました。テストされた発生回数は、「-ge」条件に近い数字です。"1" の場合、1 回以上出現する数字が出力されます。この式では、ファイルに数字などが含まれている場合に注意してください。

8 12 48

次に、「8」が出力に 2 回表示されます。"-ge 2" を指定すると、数字が 2 回以上表示されない場合、出力 (見出しを除く) は表示されません。

于 2013-08-16T10:21:34.897 に答える