0

次の構造のテキスト ファイルがあります。

....

"/home/letizia/Documents/SpanishSegmentation/Recordings/segmented/mfc/F001.0.rec"
COGE
LAS
HOJAS
Y
LAS
QUEMAS
TODAS
EN
EL
FUEGO
"/home/letizia/Documents/SpanishSegmentation/Recordings/segmented/mfc/F002.0.rec"
LA
LIGA
DE
PAZ
SE
REUNIO314201
PARA
TRATAR
EL
TEMA
....

「F0001.0」と「F0002.0」を選択したいと思います。

私は使っている:

     ID="F"
     if [[ "$LINE" == *Recordings* ]]
     then        
     SEGMENT=`echo $LINE | grep -o $ID.* | cut -d'.' -f1-2`
     fi

しかし、それは機能しません。間違いはどこですか?

事前にどうもありがとうございました。

4

2 に答える 2

2

sed代わりに使用してみてください:

sed -n 's@^".*/Recordings/.*/\(.*\)"$@\1@p' file.txt

簡単なチュートリアル:

  1. -n: 特に要求されない限り (final によって) 何も出力しませんp
  2. s@:次までの部分をその次までの部分に置き換え@ます。
  3. ^".*/Recordings/.*/\(.*\)"$: 二重引用符で開始および終了し、/Recordings/ を含み、最後のスラッシュまですべてを食べる行に一致します。
  4. \1: 一致した文字列を最後の部分 (かっこでキャプチャした部分) に置き換えます。
于 2013-02-18T11:48:10.737 に答える