2013-08-15 7 views
5

ファイルから部分文字列を取得したいが、感嘆符(Fortranのコメント記号である)が前にない行からのみ取得する。私はgrep(ただし、バインドされていない)を使用することをお勧めします。grep regexは部分文字列を返すがコメントを除外する

infile.txt:私はこれまでのところ得

baseline 

calib_ss/baseline.txt 
!calib_ss/base_sharpe.txt 

望ましい結果

grep -Po "(?<=/)[^/.]*(?=\.)" infile.txt 

返し

baseline 
base_sharpe 
たとえば、

!で始まる行を除外するには

^[^\!] 

と表現を組み合わせることを考えましたが、私は管理していません。前もって感謝します!

+0

特定の言語をリセットすることを確認します開始? – hwnd

答えて

4

これはgrepは動作するはずです:

grep -Po '^[^!].*?(?<=/)\K[^/.]*(?=\.)' infile.txt 

OUTPUT:

baseline 

説明:

  • ^[^!]リットルで!が、何も一致することを確認しますINE
  • \Kが開始に
関連する問題