awkを使用してテキストファイルを切り取る方法

awkを使用してテキストファイルを切り取る方法

awkを使用して、目的のWebサイトで見つけた長いテキストを切り取りたいです。 xxxで始まるテキスト部分からxxxで終わる部分まで、txtをファイルとして保存します。

ベストアンサー1

あなたの質問が非常にあいまいで明確な入力例を欠いている場合でも、AWKはあなたが指摘したいくつかの詳細に基づいて一般的なソリューションを開発するのに役立ちます。

次のコードは、テキストに最大2つのxxxインスタンスがあり、テキストに改行がない場合にも機能します。 awkはライン指向言語なので、ラインを個別に評価する必要があります。 sedなどの他の方法は、正規表現を使用して操作を実行するのに適しています。

BEGIN{printer="false"}
printer=="true" && $0 !~ /xxx/ {print $0}
printer=="false" && $0 ~ /xxx/  {printer="true"; split($0,a,"xxx"); print a[2]; next}
printer=="true" && $0 ~ /xxx/ {split($0,b,"xxx"); print b[1]; printer="false"; exit}

テスト1:

xxxLorem ipsum dolor sit amet, consectetur adipiscing elit, sed do
eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad
minim veniam, quis nostrud exercitation ullamco
laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in
reprehenderit in voluptate velit esse cillum dolore
eu fugiat nulla pariatur.xxx Excepteur sint occaecat cupidatat non
proident, sunt in
culpa qui officia deserunt mollit anim id est laborum.

テストb:

xxxLorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.xxx Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

おすすめ記事