単語は行内に「、」で区切られ、各行には同じ数の単語(例: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$'