2016-12-20 7 views
2

sed、awkなどを使用して、ファイル内のすべての数字に文字列をプレフィックスとして付けたいとします。ファイル内のすべての数字にsedを使用して文字列を接頭辞

入力:

sometext(0, 456) 
sometext(01, 10) 

出力:

sometext(somestring0, somestring456) 
sometext(somestring01, somestring10) 

私はsedを使用して試みたが、私のスキルはので、私は意味のある出力を生成するために管理していない制限されています。

OSX10.11を使用しているので、sedは他の* nixのものとは少し違った動作をしています。

これは、これが解決されればよいが、sedとawkが優先されるなら、私もperlとpythonを手にしている。

答えて

4

あなたはそれが番号と一致してキャプチャし、このsedコマンドを使用して、交換用の接頭辞ですることができます

sed -E 's/[[:digit:]]+/somestring&/g' file 

sometext(somestring0, somestring456) 
sometext(somestring01, somestring10) 

+1

などsomestring&, \1, \2, \3のような特殊な代替構成物を含むべきではありませんのでご注意下さいおかげで、非常に良い点Ed。 – anubhava

+1

または、すべてのsedsの移植性を 'sed '/ [0-9] [0-9] */somestring&/ g' file' –

+0

'sometext'に数字がある場合、 'sed -E' s/\([(、)[[:blank:]]というパターンを'( 'と'、 ' * \)\([0-9] [0-9] * \)/ \ 1somestring \ 2/g'' – NeronLeVelu

関連する問題