2013-12-23 101 views
2

如何與Linux的shell替換文本(sedawk,...)我想改變文本與SED編輯

輸入:

aaa decimal(6,3) null, 
bbb decimal(12,3) not null, 
ccc decimal(1,11) null, 
ddd decimal(2,10) null, 
ff decimal(10,1) null, 

我想更換decimal(X,Y)decimal

aaa decimal null, 
bbb decimal not null, 
ccc decimal null, 
ddd decimal null, 
ff decimal null, 

回答

2

你可以這樣說:

sed -r 's/(decimal)\([^)]*\)/\1/' filename 

您的輸入,它會產生:

aaa decimal null, 
bbb decimal not null, 
ccc decimal null, 
ddd decimal null, 
ff decimal null, 
+0

非常感謝你 – hanifigoktas

4

試試這個:

sed 's/(.*)//' infile.txt 
+0

你的答案正在運行,但輸入CHAR(10),輸出字符(我想刪除/替換隻有小數(X,Y)) – hanifigoktas

+0

的sed的/十進制([^)] *)/decimal /'infile.txt – mpez0

+0

您認爲所有行都具有相同的格式。那麼'aaa(4,3)decimal(5,6)null, – Jotne

1
perl -pi -e 's/decimal\(.*?\)/decimal/g' your_file 
2

如果每一道線條都是平等的,不包含decimal你可以這樣做:

awk '$2="decimal"' file 
aaa decimal null, 
bbb decimal not null, 
ccc decimal null, 
ddd decimal null, 
ff decimal null, 
0

使用awk

awk '/decimal/{gsub(/\(.*\)/,"")}1' file