2番目の列に4単語以下の行を表示します。

2番目の列に4単語以下の行を表示します。

次の形式のシンボルテーブルがあります。

M07UP49A0870I422.wav    <s> haraa keelaa <bn> </s>
M07UP49A0870I423.wav    <s> <horn> jau <babble>  </s>
M07UP49A0861C86105.wav  <s> waa khaada aadi kaa upayoga laabhadaayaka paaya gayaa hai  </s>
M07UP49A0861C86106.wav  <s> aadi kisaan apnee stara para bhii taiyaara kara sakatee hai </s>
M07UP49A0861C86107.wav  <s> kii gobara kaa upayoga kandxee banaakara iindhana kee ruupa mee kiyaa jaata hai <bang> </s>
M07UP49A0861C86108.wav  <s> geehuun kii phasala kii katxaayii kee baada <horn> kheeto ko aaga lagaakara saapha kiyaa jaata hai <babble> </s>
M07UP49A0861C86109.wav  <s> badxqii maatraa mee jiiwaanqu jalakara nashtxa ho jaataa hai <babble> </s>

明らかに、ファイルには2つの列が含まれています。最初の列はオーディオファイル名(拡張子.wav)、2番目の列はオーディオファイルの録音内容です。

2番目の列は4単語以下で構成する必要があります(タグを除く、タグは<>で書かれた単語です)。

たとえば、2番目の行を見てみましょう。この行には1つの単語しかありません。集中する(知っている

<s> 
</s> 
<babble> 
<horn> 

タグなので、行の単語数には含まれません。

デフォルトでは、すべての行の2番目の列の単語は<>で囲まれていない文字列です。

今私の使命は、2番目の列で4単語以下の行のみを見つけることです。

私は次のコマンドを使用しました。

gawk 'NF>4' file > output

しかし、結果は得られませんでした。

あなたの便宜のために予想される結果は次のとおりです。

M07UP49A0870I422.wav    <s> haraa keelaa <bn> </s>
M07UP49A0870I423.wav    <s> <horn> jau <babble>  </s>

2 番目の列には haraa と keelaa という 2 つの単語のみが含まれ、2 番目の行に jau という 1 つの単語しか含まれていないため、次の出力が表示されます。

この行に加えて、2番目の列の行は4つ以上の単語で構成されています。

ベストアンサー1

次のAWKスクリプトは元の行をxに保存し、すべてのタグを削除して単語数を計算します(最初のフィールドのファイル名を減らすには1を減算します)。単語数が5未満の場合は、元の行を印刷します。

awk '{x=$0; gsub(/<[^>]*>/, "")} NF-1<5 {print x}' filename

おすすめ記事