我想用sed编辑器更改文本

时间:2013-12-23 13:15:48

标签: linux shell sed awk

如何用Linux shell替换文本(sedawk,...)

输入:

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,

5 个答案:

答案 0 :(得分:4)

试试这个:

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

答案 1 :(得分:2)

你可以说:

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

为了您的输入,它会产生:

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

答案 2 :(得分:2)

如果每一行都相等并且包含decimal,则可以执行以下操作:

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

答案 3 :(得分:1)

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

答案 4 :(得分:0)

使用awk

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