2012-04-22 8 views
1

私は小さな問題があります。下のコードはうまくいきましたが、今は何も表示していません。Shell/AWK - 値が表示されず、reg expを追加する方法

> #! /bin/bash 

awk -F, '  FILENAME = $1 { FS = ":" } 

     { print $1 " " $2 " " $3 " " $4 } 





       ' 
  • 私のようないくつかのオプションを追加したい:私はREG元-Cオプションのようになると、いくつかの特定の事柄を表示することを望ん./search thefile -C

これについてのアイデアは?

ありがとうございました

答えて

0

ちょうどあなたを始めましょう。 。 。

この

100:200:300:400 

そして、このシェルスクリプトは、これらの値のそれぞれを出力しますように見えますTEST.DATファイルの場合。

#! /bin/bash 
awk 'BEGIN { FS = ":" } NF==4 && $0 ~/:/{ print FILENAME, $1 " " $2 " " $3 " " $4 }' $1 

は、印刷しようとする前に、少なくとも4つのフィールドがある

./test.sh 'test*.dat' 

として、NF>=4を確認しますテストを単一引用符で囲まれた引数を指定して、シェルスクリプト「test.sh」を起動します。正規表現の一致$0~/:/は、行に少なくとも1つのコロンが付いていることを確認します。

FILENAME変数は、どのファイルから行が得られるかを示します。あなたが意図したとおりに動作していることを確信した後に、削除することができます。

+0

こんにちは、 スクリプトのような機能はどうですか-Cはどういう意味ですか? – user1253622

+0

@ user1253622:何を試しましたか? –

0

あなたは間違いなく行うにはしたくない:あなたはおそらく、その向こう

FILENAME == $1 

を意味

FILENAME = $1 

、スクリプトが実際にサンプル入力と期待される出力を含むいくつかのコンテキストなしで意味がありません。 。

関連する問題