2012-02-24 23 views
4

検索ファイル、ショーが一致し、最初の行

column1;column2;colum3 
foo;123;345 
bar;345;23 
baz;089;09 

を今、私は最初の行を出力短いコマンドをしたいです(1つまたは複数の)対応する線を含む。

head -n 1 file ; cat file | grep bar 
+0

たぶん私は追加する必要があります:私は、行の最後に検索文字列を持ちたいので、私はすぐにすることができます複数の検索を連続して行う場合は、検索語を変更します。 (矢印アップ、Ctrl + W、新しい検索文字列を入力) – grimmig

答えて

3

これはあなたのために働くかもしれない:

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 
+0

あなたは 'awk -v v = baz 'NR <2; $ 0〜v' file'と書くこともできます。 –

+0

@glennjackman私は同意しますが、これは例外です(上記参照)。 – potong

+0

ありがとうございます。 awkで変数を使う可能性について私は考えなかった! – grimmig

2

head -n 1 file && grep bar fileたぶんそこでも短いバージョンですが、少し複雑になります。より短い方法はあります。

EDIT:bobahのコメントのとおり、私は唯一の単一のエラーを持っているコマンド間& &を追加した行方不明のファイルの

+0

私は複雑です。また、検索文字列が行末にある場合は、複数の検索を高速化する(ARROW-UP、CTRL + W、新しい文字列を入力してください) – grimmig

+0

+1、cmdsを "; &&"で区切ります。ファイルが見つからないために1つのエラーメッセージしか表示されないようにする – bobah

+0

@bobahはい考えは良いです –

6

これは、ジョブを実行する必要があります。

sed -n '1p;2,${/bar/p}' file 

  • 1pは、最初の行を印刷します。
  • 2,$は、列名に一致するものがあります場合は、この二回ヘッダ行を印刷しないことをbar

ノートに一致する行を出力します最後の行

  • /bar/pに二行目からマッチします。

  • +2

    もう1つの方法: 'sed -e '1 {p; d;};/bar /!d' file' – 2r2w

    3

    あなたはgrouping commands、最初の行がbarがあまりにも含まれている場合はどうすれば

    $ { head -1; grep bar; } <input.txt | column -ts';' 
    column1 column2 colum3 
    bar  345  23 
    
    3

    をかなり-印刷するため、パイプ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 
    

    次の行にはほとんど最後の項目として検索刺さをしたい場合それは単一のプロセスです。

    +0

    true、didn 'それを考える。しかし、正直なところ私は早急に検索するために検索を手動で行い、後でその出力を使用しないので気にしません。 – grimmig

    1

    ここではまだ最も短いコマンドです:

    awk 'NR==1||/bar/' file 
    
    +1

    しかし、それはすべてのOP要件(コメント参照)と一致しません。 – mschilli

    関連する問題