Articles of текстовая обработка

Как мне конвертировать содержимое в формат ниже?

pid name tid mod state data ————————————————————————- 39523 srv0051_0001_0 39642 20-10:59:28 Working 820000:500196:500077 43137 srv0051_0005_0 43156 20-10:59:28 Working 820000:4250501:840057 43895 srv0051_0006_0 43903 20-10:59:28 Working 820000:4250501:840057 47523 srv0051_0009_0 47547 20-10:59:28 Working 600005:4250501:4250846 48841 srv0051_0010_0 48851 20-10:59:28 Working 600005:4290000:4290000 58182 srv0051_0020_0 58188 20-10:59:28 Working 820000:4250501:840057 8297 srv0079_0008_0 8316 20-10:59:27 Working 600005:3070001:3050012 pid,name,tid,mod,state,appnbr,request,tasknbr,appctx,username 39523,srv0051_0001_0,39642,09-JUL-2018 12:36:10,Working,820000,500196,500077 43137,srv0051_0005_0,43156,09-JUL-2018 12:36:10,Working,820000,4250501,840057 43895,srv0051_0006_0,43903,09-JUL-2018 […]

сделать строку в столбец n вставить новую строку в каждую последнюю строку

у меня есть file.txt john, 5901, open lina, 2401, open jody, 5401, open Я хочу вставить новую строку в каждую последнюю строку, результат должен быть: john,5901,open lina,2401,open jody,5401,open что я пытаюсь cat file.txt | tr -d ‘\n’ но результат как этот john,5901,openlina,2401,openjody,5401,open

sed + пометить строку в случае пройденного слова

мы хотим пометить “#” совпадающую строку с помощью sed или perl line liner например мы хотим отметить все строки в файле, которые include слово DatePattern log4j.appender.DRFA.DatePattern=.yyyy-MM-dd ожидаемый результат #log4j.appender.DRFA.DatePattern примечание – если строка уже отмечена, она не добавит еще один знак «#» перед строкой

Выходной контекст (-C) для grep создает массивные файлы

Задача: Я использую grep для поиска в некоторых текстовых файлах, передавая результаты из одного grep (исключая несколько строк) в другую (сопоставляя несколько строк) + отображая некоторый контекст, используя параметр -C как показано ниже: grep -v “Chapter” *.txt | grep -nE -C1 ” leaves? ” Проблема: Это работает очень хорошо при печати результатов, но создает очень […]

Как я могу добавить строки, которые не начинаются с определенных ключевых слов?

Я изменяю кучу файлов Python, и мне нужно добавить каждое объявление переменной с помощью «self». Вот пример того, что я пытаюсь сделать. Из этого: class testClass(parentClass): def __init__(self): parentClass.__init__(self) flag1 = 0 flag2 = 1 array = (0, 1, 2) К этому: class testClass(parentClass): def __init__(self): parentClass.__init__(self) self.flag1 = 0 self.flag2 = 1 self.array = […]

получить часть строки и добавить к этой же строке

У меня есть файл с 19k строк, как эти: a96abbb5da0985983e113a9a7484c063 management/modules/membership/file1 d7f7dd7e3ede3e323fc0e09381f16caf management/modules/invoices/path/file2 Тем не менее, я хотел бы добавить имя модуля в конце строки. Таким образом, результат будет: a96abbb5da0985983e113a9a7484c063 management/modules/membership/file1 membership d7f7dd7e3ede3e323fc0e09381f16caf management/modules/invoices/path/file2 invoices Есть ли способ сделать это, например, с помощью sed или что-то подобное? Желательно без дополнительного файла, используя -i . Имя […]

Удалить последние символы перед разделителем

Содержание входного файла выглядит так: header;header;header;header 2018/06/04;141000;bla;bla Желаемый результат: header;header;header;header 2018/06/04;1410;bla;bla У меня есть команда ниже с sed sed -i ‘s/.//16’ $inputFile Но удаляет мой заголовок как: header;hder;header;header 2018/06/04;1410;bla;bla Чтобы избежать этого я пытался сделать: tail -n +2 | sed -i ‘s/.//16’ $inputFile Но не работает. заранее спасибо

добавить обратную косую черту перед конкретным символом

у нас есть файл с большим количеством символов “%” в файле мы хотим добавить перед каждым “%” обратную косую черту как \% пример до %TY %Tb %Td %TH:%TM %P после \%TY \%Tb \%Td \%TH:\%TM \%P как это сделать с помощью sed?

подсчитать все конкретные слова, которые заканчиваются в каждой строке

как посчитать все слова, оканчивающиеся на “.wsp” в файле more file /application_1532998892988_0207/driver/BlockManager/memory/remainingOffHeapMem_MB.wsp /spark/application_1532998892988_0207/driver/BlockManager/memory/memUsed_MB.wsp Между тем, я создаю этот синтаксис sed s’/\// / g’ file | awk ‘{print $NF}’ | grep -o ‘.wsp’ | wc -l но этот синтаксис не так элегантен

Как удалить пробелы в столбцах?

Я хочу отфильтровать несколько столбцов файла, всего их 46 . Я только хочу отфильтровать от 25 до 46 , следующим образом: Желаемый результат: Column25 Column26 … Column47 Column25 Column26 … Column47 Column25 Column26 … Column47 У меня есть правильная команда с awk: cat -n <(awk '{n=17;if(NR==1)n=25;for(i=n;i<=NF;i++) a[$i]++} END{for(val in a) print val,a[val]}' filelog.txt) Команда выше, […]