file.txtкак заменить все, кроме строки интереса
fruits:banana,apple,grape,limon,orange,tomate,
fruits:apple,limon,
fruits:banana,grape,limon,
fruits:orange,tomate,grape,
fruits:banana,
fruits:apple,
fruits:banana,apple,
Мне нужно заменить все, что отличается от «банан» для фруктов, и получить такой вывод:
fruits:banana,FRUIT,FRUIT,FRUIT,FRUIT,FRUIT,
fruits:FRUIT,FRUIT,
fruits:banana,FRUIT,FRUIT,
fruits:FRUIT,FRUIT,FRUIT,
fruits:banana,
fruits:FRUIT,
fruits:FRUIT,apple,
Я попытался использовать awk, но я могу только заменить поля определенных строк.
Пример заменить все строки "Яблоко" по fruit2, или все строки "Яблоко" от fruit2 и все строки "Томат" или "оранжевые" по fruit3
awk -F":" '{ gsub(/apple/,"FRUIT2",$2); print }' OFS="," file.tx
или
awk -F":" '{ gsub(/apple/,"FRUIT2",$2);;gsub(/tomate|orange/,"FRUIT3",$2); print }' OFS="," file.txt |sed "s/./:/7"
fruits:banana,FRUIT2,grape,limon,FRUIT3,FRUIT3,
fruits:FRUIT2,limon,
fruits:banana,grape,limon,
fruits:FRUIT3,FRUIT3,grape,
fruits:banana,
fruits:FRUIT2,
fruits:banana,FRUIT2
но Мне действительно нужно заменить все, что отличается от того, что для любой строки, например: fruit4
Как генерировать выходные данные следующим образом?
fruits:FRUIT4,FRUIT2,FRUIT4,FRUIT4,FRUIT3,FRUIT3,
fruits:FRUIT2,FRUIT4,
fruits:FRUIT4,FRUIT4,FRUIT4,
fruits:FRUIT3,FRUIT3,FRUIT4,
fruits:FRUIT4,
fruits:FRUIT2,
fruits:FRUIT4,FRUIT2
Вы хотите, чтобы результат выглядел как [this] (https://regex101.com/r/kP1cS7/1)? – OnlineCop
Непонятно, хотите ли вы, чтобы определенные имена фруктов отображались на определенные новые значения (apple = FRUIT39) или каждое новое имя фрукта, сопоставленное новому значению на основе некоторой базы с числовым суффиксом (FRUIT1, FRUIT2 и т. Д.) Или что-то еще , –