特定の文字列で各行を切り取る方法は?

特定の文字列で各行を切り取る方法は?

入力.txt:

john_Apple01_xyz_1
john_Fruit_Apple01_abc_c1
john_Apple21_trs_1
john_Fruit_Apple21_efg_1
john_Fruit_Apple21_tefg_1

希望の出力:

Apple01_xyz_1
Apple01_abc_c1
Apple21_trs_1
Apple21_efg_1
Apple21_tefg_1

行でリンゴが見つかるたびに、前部を切り取るためにnawkまたはsedをどのように使用しますか?

私はSolaris 10でKSHを使用しています。

ベストアンサー1

@cuonglmでコメント以下を使用してこれを行う方法について説明しますsed

sed -e 's/.*\(Apple\)/\1/' input.txt

良い古いものを使用することを検討することもできますgrep

grep -o 'Apple.*' input.txt

警告1 - 現在持っているSolarisがないため、Solarisにはgrepこのオプションがない可能性があります-o。 YMMV。

注2 - 入力ファイルにApplesがまったく含まれていない行がある場合、その行は出力にまったく表示されません。これが望ましい動作であるかどうかはわかりません。そうでなければ、sed答えで十分でしょう。

おすすめ記事