column1;column2;colum3
foo;123;345
bar;345;23
baz;089;09
を今、私は最初の行を出力短いコマンドをしたいです(1つまたは複数の)対応する線を含む。
head -n 1 file ; cat file | grep bar
column1;column2;colum3
foo;123;345
bar;345;23
baz;089;09
を今、私は最初の行を出力短いコマンドをしたいです(1つまたは複数の)対応する線を含む。
head -n 1 file ; cat file | grep bar
これはあなたのために働くかもしれない:
cat file | awk 'NR<2;$0~v' v=baz
column1;column2;colum3
baz;089;09
通常cat file | ...
は無用であるが、この場合にはそれが邪魔にファイル引数を保持し、変数v
を迅速に修正することができます。
別の解決策:
cat file | sed -n '1p;/foo/p'
column1;column2;colum3
foo;123;345
head -n 1 file && grep bar file
たぶんそこでも短いバージョンですが、少し複雑になります。より短い方法はあります。
EDIT:bobahのコメントのとおり、私は唯一の単一のエラーを持っているコマンド間& &を追加した行方不明のファイルの
これは、ジョブを実行する必要があります。
sed -n '1p;2,${/bar/p}' file
:
1p
は、最初の行を印刷します。2,$
は、列名に一致するものがあります場合は、この二回ヘッダ行を印刷しないことをbar
ノートに一致する行を出力します最後の行
/bar/p
に二行目からマッチします。もう1つの方法: 'sed -e '1 {p; d;};/bar /!d' file' – 2r2w
あなたはgrouping commands、最初の行がbar
があまりにも含まれている場合はどうすれば
$ { head -1; grep bar; } <input.txt | column -ts';'
column1 column2 colum3
bar 345 23
をかなり-印刷するため、パイプcolumn
にコマンドを使用できますか?その後、あなたのバージョンで2回印刷されます。 awk
ソリューション:
awk 'ARGIND > 1 { exit } NR == 1 { print } NR > 1 && $0 ~ ARGV[2] { print }' FILE YOURSEARCHSTRING 2>/dev/null
sed
ソリューション:
sed -n '1p;1d;/bar/p' FILE
それらの両方のための利点、その
awk 'NR == 1 { print } NR > 1 && $0 ~ "bar" { print }' FILE
次の行にはほとんど最後の項目として検索刺さをしたい場合それは単一のプロセスです。
true、didn 'それを考える。しかし、正直なところ私は早急に検索するために検索を手動で行い、後でその出力を使用しないので気にしません。 – grimmig
たぶん私は追加する必要があります:私は、行の最後に検索文字列を持ちたいので、私はすぐにすることができます複数の検索を連続して行う場合は、検索語を変更します。 (矢印アップ、Ctrl + W、新しい検索文字列を入力) – grimmig