次の行を含むテキストファイルがあります。
From: arkit Corp. <[email protected]>
Sent: Friday, June 16, 2017 6:35 PM
To: User Name
Subject: arkit Corp.: activity alert.
<http:// arkit.co.in/>
ACTIVITY ALERT FOR:
Ravi
https:// arkit.co.in/ Path Read (03/07/2017)
Path: /website/upload/file.txt
https:// arkit.co.in/ Path Read (04/07/2017)
Path: /website/upload/file1.txt
Copyright ▒ 2017 arkit Corp.. All Rights Reserved.
次のように印刷したいと思います。
https:// arkit.co.in/ Path Read (03/07/2017) Path: /website/upload/file.txt
https:// arkit.co.in/ Path Read (04/07/2017) Path: /website/upload/file1.txt
並べて印刷する方法を提案できる人はいますか?
ベストアンサー1
メッセージ全体を解析するには、次のように「アドレス」を使用します。
sed -n '/https:/h;/Path:/{H;g;s/\n/ /p;}' yourfile
デフォルトでは出力されません(-n
)。それで始まる行をhttps:
メンテナンスバッファに入れてから、Path:
その行をメンテナンスバッファに追加し、パターン空間に移動し、改行を空白に置き換えます。
または他の方法:
sed -e '/^https:/!d;:a' -e '$!N;/Path:/!ba' -e 's/\n\n*/ /' yourfile
つまり、行がhttps:
()で始まらない場合は削除してください/^https:/!d
。それ以外の場合は、行を追加するまでループ(:a
)を開始して新しい行(存在する場合)を追加します()。 。最後に、すべてを1行に入れるために、改行を空白に置き換えます()。$!N
Path:
/Path:/!ba
s/\n\n*/ /