行が文字で始まる場合は、同じ行に別の文字が表示されるまでテキストを削除します。

行が文字で始まる場合は、同じ行に別の文字が表示されるまでテキストを削除します。

一部の行はで始まり、#任意の数字(1つ以上の数字)で始まります=。ハッシュで始まる行の場合、行の先頭から等号(含む)までのテキストを削除します。

ファイルの例:

some text
#5=get('data');
;done;

結果ファイル:

some text
get('data');
;done;

ベストアンサー1

sed 's/^#[[:digit:]]\{1,\}=//' < file.in > file.out

ほとんどのsed実装では、このオプションを使用して、次に置き換えることができる-E拡張正規表現を取得できます。\{1,\}+

sed -E 's/^#[[:digit:]]+=//' < file.in > file.out

[[:digit:]]そのロケールで10進数で分類された文字と一致します。 GNUシステムでは常に一致します[0123456789]。他の場合は、他の10進数と一致する可能性があります(0123456789を除く)。一致は[0-9]通常、ややランダムですが、常に0123456789を含み、他のASCII文字は含まれません。よくわからず、正確に何と一致させたい場合を使用してください[0123456789]

または、次のものを使用できますperl

perl -pe 's/^#\d+=//' < file.in > file.out

\d[0123456789]そのオプションを渡さない限り、一致します-C。この場合、入力をUTF-8でエンコードされていると解釈し(ロケールがUTF-8を使用している場合)、Unicodeが10進数で分類する文字と一致します(例:0123456789٠١٢٣٥٦٧٨٩0123456789

おすすめ記事