文字の前に記号を追加

文字の前に記号を追加

テキストファイルがあり、各行には定義された数のフィールドがありますが、行ごとに異なる場合があります。私が望むのは、行フィールドの各値の前に「=」記号を追加することです。

たとえば、入力ファイル

A   B   C   D   E
P   Q   R   S   T   U
L   M   N   O

結果ファイル

=A  =B  =C  =D  =E
=P  =Q  =R  =S  =T  =U
=L  =M  =N  =O

また、これは単なる例であり、私のファイルには20を超えるフィールドを含むいくつかの行が含まれています。これを効率的に行う方法。

ベストアンサー1

フィールドに複数の文字が含まれていると仮定すると、GNUは次のようになりますsed

sed 's/\</=/g' <<END
foo    bar    baz
A      B      C
apple  banana cherry
END
=foo    =bar    =baz
=A      =B      =C
=apple  =banana =cherry

GNU sedの\<正規表現構成は、ゼロの幅を持つ「単語の開始」マーク(単語以外の文字(または行の先頭)と単語の文字(ロケールの数字または下線)の間の切り替え)です。だから私たちはそれぞれの始まりを変えます言葉「=」文字を使用します。

(sed正規表現参照ここ)

おすすめ記事