[重複]列で正確な文字列を検索する

[重複]列で正確な文字列を検索する

単語は行内に「、」で区切られ、各行には同じ数の単語(例:4)があるファイルがあります。したがって、その形は次のとおりです。

something1,something2,something3,something4

4番目の列に含まれる行を正確に検索したいのですがsomething4、次のような行がある場合はどうすればよいですか?

something1,something2,something3,1_something4

grepを使用すると、これら2つの行を取得できますが、4番目の要素の行だけが必要です。something4どうすればいいですか?

答え1

次の目的で使用できますawk

awk -F, '$4 == "something4"' file.csv

4番目の列を持つ行の行全体を印刷する必要があります。something4


変数を渡すには、awk次のことが必要です。

var1=$(echo "something,something4" | cut -f2 -d,)
awk -F, -vsearch="$var1" '$4 == search' file.csv

答え2

または、列が4つしかなく、最後の列に具体的な内容を提供したい場合は、

grep ',something4$' < input

(grepを使用しても問題ない場合は投稿してください。アッ良い解決策です)。

答え3

cut通常、この種の問題には必要な列だけをインポートできますgrep

echo something1,something2,something3,something4 | cut -d , -f 4 | grep '^something4$'

関連情報