次のファイルがある場合:
example.png example.jpg example2.jpg example2.png example.swf
example2.swf example3.jpg example4.jpg example3.png example3.swf
たとえば、swfを含む単語を抽出したい場合、出力は次のようになります。
example.swf
example2.swf
example3.swf
試してみましたが、grep -o "swf[^[:space:]]*"
ただたくさん印刷され、swf
その後試してみましたが、grep -o '[^ ]*a\.swf[^ ]*'
出力がほとんどありません。ワイヤー「swf」が含まれています。何をすべきかを知っている人はいますか?
答え1
GNU grepを使用してください:
grep -o '\b\w*\.swf\b' file
出力:
example.swf 例2.swf 例3.swf
\b
:幅0の単語境界
\w
: 単語文字
\.
:ポイントと一致
答え2
あなたはできます:
grep -o '[^ ]*\.swf' file.txt
[^ ]*
ゼロ個以上の空白以外の文字と一致します。\.swf
文字通りの意味と一致.swf
例:
% grep -o '[^ ]*\.swf' file.txt
example.swf
example2.swf
example3.swf
答え3
最初のステップ
スペースを行末に置き換えるには、次のコマンドを使用します。sed
ステップ2
フィルタ出力の使用grep
はい
sed -e s/\ /\\n/g file | grep .swf