パターン一致行と空行を除いて、行の先頭に文字を挿入するには、sed を使用します。

パターン一致行と空行を除いて、行の先頭に文字を挿入するには、sed を使用します。

ちょっと詰まっています。次のデータを含むファイルがあります。

Group: Lorem ipsum dolor sit amet, consectetur adipiscing elit.   
POM Lorem ipsum dolor sit amet, consectetur adipiscing elit. 
POM Lorem ipsum dolor sit amet, consectetur adipiscing elit. https://www.lorem.org/
Embedded Lorem ipsum dolor sit amet, consectetur adipiscing elit. )

Group: Lorem ipsum dolor sit amet, consectetur adipiscing elit.  
POM Lorem ipsum dolor sit amet, consectetur adipiscing elit. 
POM Lorem ipsum dolor sit amet, consectetur adipiscing elit.  https://Lorem ipsum dolor sit amet, consectetur adipiscing elit. 
Embedded Lorem ipsum dolor sit amet, consectetur adipiscing elit. )

グループで始まる行を除くすべての行の先頭にセミコロンを追加したいと思います。

だから私は次の最終結果を得ます。

Group: Lorem ipsum dolor sit amet, consectetur adipiscing elit.  
;POM Lorem ipsum dolor sit amet, consectetur adipiscing elit. 
;POM Lorem ipsum dolor sit amet, consectetur adipiscing elit.  https://Lorem ipsum dolor sit amet, consectetur adipiscing elit. 
;Embedded Lorem ipsum dolor sit amet, consectetur adipiscing elit. )

Group: Lorem ipsum dolor sit amet, consectetur adipiscing elit.  
;POM Lorem ipsum dolor sit amet, consectetur adipiscing elit. 
;POM Lorem ipsum dolor sit amet, consectetur adipiscing elit. 
;Embedded Lorem ipsum dolor sit amet, consectetur adipiscing elit. )

パターンが一致しない場合は、以下を追加できます。

sed '/^Group:/! s/^/;/' index1.txt

しかし、私は空行を無視したいと思います。

私は何を見逃していますか?

ベストアンサー1

空行を含むように一致パターンを改善します。

sed '/^Group:\|^$/! s/^/;/' index1.txt 

これにより、空白行も変更されません。

おすすめ記事