sedを使用して一致するパターンの左側に文字を挿入しますか?

sedを使用して一致するパターンの左側に文字を挿入しますか?

入力として使用されるデータファイルです。

1
2
2
979
data
raw
32j
23
32323

出力:

/* 1
/* 2
/* 2
/* 979
data
raw
/* 32j
/* 23
/* 32323

sedを使用して目的の出力をどのように取得できますか?パターンに一致する正規表現は次のとおりです。^[0-9]*。

ベストアンサー1

あなたが望むのは、数字で始まる行をコメントアウトすることです。これは^[0-9]*、空白行や数字がまったくない行を含むすべての項目と一致するわけではありません*。 「0以上」を意味するので、ファイル内のすべての行に一致します。

したがって、数字で始まる行をコメントアウトするには、次のようにします。

$ sed  '/^[0-9]/ s|^|/* |' file 
/* 1
/* 2
/* 2
/* 979
data
raw
/* 32j
/* 23
/* 32323

または:

$ sed -E 's|^([0-9])|/* \1|' file 
/* 1
/* 2
/* 2
/* 979
data
raw
/* 32j
/* 23
/* 32323

おすすめ記事