sed:特殊色文字と一致

sed:特殊色文字と一致

特殊な色で区切られた文字を含むファイルがあります。

$ cat zz
aaa.gpg
bbb.gpg
ccc.gpg

$ cat -A zz
^[[38;5;216maaa.gpg^[[00m$
^[[38;5;216mbbb.gpg^[[00m$
^[[38;5;216mccc.gpg^[[00m$

sedエンディングを一致させて削除する.gpgには、コマンドを使用する必要があります。したがって、特殊文字がない場合は、次を使用します。

cat zz | sed 's/\.gpg$//'

では、どのように.gpg^[[00m$パターンを一致させることができますかsed

可能なすべての置換を試しましたが、まだ機能しません。たとえば、

cat zz | sed 's/\.gpg\^\[\[00m$//'

ベストアンサー1

c=$(printf '\\(\33\\[[0-9;]*m\\)*')

$csgr(グラフィックレンダリング設定)。

それから:

sed "s/${c}\.${c}g${c}p${c}g\(${c}\)\$/\5/"

.gpg散在する前のSGRシーケンスを含むテールは削除されますが、テールシーケンス(\e[00m基本グラフィック変換を復元するための(sgr0)など)は維持されます。

おすすめ記事