すべての新しい行から最初の文字の点のみを削除します。

すべての新しい行から最初の文字の点のみを削除します。

私はすべての新しい行でドット文字で始まる場合は、ドット文字を削除したいと思います。

example:
test.example.com
123.example.com
999.example.com
.asd.example.com
.1.1.example.com

would become:
test.example.com
123.example.com
999.example.com
asd.example.com
1.1.example.com

Bashでこれを行う簡単な方法はありますか?

答え1

「in bash」の意味によって異なります。sed正規表現ベースのテキストエディタや同様の正規表現エディタで行うことは簡単です。

$ sed 's/^[.]//' example
test.example.com
123.example.com
999.example.com
asd.example.com
1.1.example.com

ピリオドの周りの括弧は正規表現の解釈を防ぎます(単一の先行文字の削除)。バックスラッシュエスケープを使用してs/^\.//リテラルにすることもできます。.

答え2

データを含むファイル入力.txt

次のコマンドを使用すると、正規表現を使用してテキストを置き換えることができます。入場($名sed)より多くの情報を知りたい場合

$ sed 's/^\.//' input.txt

これにより、ターミナル出力に結果が印刷されます。

必要に応じて、以下を使用して出力をファイルにリダイレクトできます。

$ sed 's/^\.//' input.txt > output.txt

関連情報