-1

こんにちは、bash に問題があります。ファイルがあり、各行の最終行にポイントを挿入しようとしています:

cat file | sed s/"\n"/\\n./g  > salida.csv

しかし、機能しません=(。

私は単語で行を数える必要があるので、同じ国の行を数える必要があります

grep を実行すると、grep は colombia と colombias を取得します。

そして他の質問はどうすれば同じ国の行を数えることができますか?

例えば

1 colombia
2 brazil
3 ecuador
4 colombias
5 colombia

colombia 2
colombias 1
ecuador 1
brazil 1
4

3 に答える 3

1

sed ソリューションが投稿されたので (おそらくこのタスクに最適なツールです)、awk に貢献します

awk '$NF=$NF"."' file > salida.csv

アップデート:

$ cat input
1 colombia
2 brazil
3 ecuador
4 colombias
5 colombia

$ awk '{a[$2]++}END{for (i in a) print i, a[i]}' input
brazil 1
colombias 1
ecuador 1
colombia 2

...そして、別の質問で質問を更新するのをやめてください...

于 2013-05-17T17:12:28.920 に答える
0

コマンドラインにはいくつかの問題があります。いくつかは重要で、いくつかはスタイルの選択ですが、これが私の見解です:

  1. 不要catsedファイル名を引数として取ることができます。

  2. sedコマンドには . は必要ありませんg。各行には 1 つの端しかないため、それ以上を探すように指示する理由はありません。

  3. 改行文字を探すのではなく、行末を$.

それはあなたを残します:

sed s/$/./ file > salida.csv

編集:

あなたの本当の質問が「どのようにgrepするのcolombiaですかcolombias?-w

grep -w colombia file

それらを数えたい場合は、追加するだけです-c

grep -c -w colombia file

詳細については、grep(1)man ページを参照してください。

于 2013-05-17T17:11:12.923 に答える