Я хочу изменить текст с помощью редактора sed

Как заменить текст оболочкой Linux (sed, awk ,...)

Входные данные:

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 ответов

Ты мог бы сказать:

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

Для вашего ввода это произвело бы:

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


Попробуй это:

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


Если каждая строка равна и содержит decimal вы можете:

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


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


Использование awk

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

licensed under cc by-sa 3.0 with attribution.