特殊な色で区切られた文字を含むファイルがあります。
$ 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\\)*')
$c
sgr(グラフィックレンダリング設定)。
それから:
sed "s/${c}\.${c}g${c}p${c}g\(${c}\)\$/\5/"
.gpg
散在する前のSGRシーケンスを含むテールは削除されますが、テールシーケンス(\e[00m
基本グラフィック変換を復元するための(sgr0)など)は維持されます。