Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   [решено] awk замена текста во втором столбце (http://forum.oszone.net/showthread.php?t=305359)

shmel_sv@vk 13-09-2015 14:21 2552670

awk замена текста во втором столбце
 
доброго времени суток
нигде не могу найти решение, но думаю в AWK 'nj djpvj;yj
как можно заменить текст_1 на текст_2 в втором столбце и вывести только те строки которые заменены?
спасибо

shmel_sv@vk 13-09-2015 14:53 2552673

пробую вот это (без поиска во втором столбце)
awk "{if(gsub(/"2008-09-19"/,"2008.09.17")){print}}" nfo.txt>1.txt

выходит ахинея
меняет значения на 2008.090.17

awk "{if(gsub(/"2008-09-19"/,"2008-09-17")){print}}" nfo.txt>1.txt
меняет значения на 1982 (тоесть минусует цыфры)

shmel_sv@vk 13-09-2015 15:15 2552684

разобрался
awk "{if(sub(/2008-09-19/,\"2008-09-17\")){print}}"

shmel_sv@vk 13-09-2015 16:26 2552710

блин. все же вопрос на счет изменений только во втором столбце я ж не решил

Iska 13-09-2015 17:50 2552736

Коллега, завязывайте чатиться сам с собой. Лучше упакуйте Ваш «nfo.txt» в архив, приложите к сообщению или выложите на RGhost. На всякий случай, поясните, что есть «второй столбец». Укажите, что именно и по каким критериям ищем, на что меняем.

shmel_sv@vk 13-09-2015 23:26 2552838

часов 8 на поиски ответа и я нашел

gawk "{print $1, gensub(/(2008)/,\"\\1 ADDED\", \"g\", $2)}" "OFS=\t" "FS=\t" nfo.txt>z1.txt

но. как печатать только строки которые совпали типа if(gensub)
простоя не разбираюсь в awk

Foreigner 14-09-2015 02:36 2552862

А что за файл? Приведите пример строки, иначе никак.

shmel_sv@vk 14-09-2015 12:19 2552947

вот строки в файле. жирным выделено то, что оно находит. именно эти строки мне и нужны.
сейчас оно пишет все строки и меняет значения во второй колонке как мне надо
я в принципе понял что потом могу отфильтровать через sed

Цитата:

много_разных_букв_и_какаято_инфа_2007_или_2008_или_еще_чтото 2008-12-4
много_разных_букв_и_какаято_инфа_2007_или_2008_или_еще_чтото 2008-12-4
много_разных_букв_и_какаято_инфа_2007_или_2008_или_еще_чтото 2006-12-4
много_разных_букв_и_какаято_инфа_2007_или_2001_или_еще_чтото 2007-12-4
ps. не могу правильно вставить код. но разделитель табуляция

Foreigner 14-09-2015 13:37 2552985

Только год?
Код:

sed -rn "s/.+\s(2008)-.*/\1/p" nfo.txt > 1.txt
Или вторую колонку?
Код:

sed -rn "s/.+\s(2008.+)/\1/p" nfo.txt > 1.txt

shmel_sv@vk 14-09-2015 14:16 2552997

вторую колонку:)
спасибо!!!


Время: 22:37.

Время: 22:37.
© OSzone.net 2001-