поиск в csv-файле значения в столбце 2, если значение, то вставьте "invalid" и сдвиньте ячейки вправо

enter image description here Отключение хинтинга в шрифтах, похоже, решает проблему.

3
25.06.2018, 22:51
3 ответа

Всегда нужно удовлетворять зависимости, поэтому они так и называются.

Тем не менее, лучший способ установки скачанного .debпакета ИМХО:

sudo apt-get install./some_package_name_in_current_directory.deb

Конечно, всегда можно пойти наоборот вот так:

sudo dpkg --install./some_package_name_in_current_directory.deb
sudo apt-get install --fix-missing

Но я нахожу это громоздким.

-121 ---213130 ​​-

Используя инструмент GNU sed, мы можем подойти к этой проблеме следующим образом:

 sed -e '
    1!s/,/\n&/2
    /\.app\n/s/,/,INVALID,/
    s/\n//
 '  file.csv

Читать как:

 ° Only for lines that are not the first, meaning, skip the header from being considered for processing, whilst for the others, place a marker at the second occurrence of the comma.
 ° Any line that has the 2nd field terminating in a.app append the string INVALID after the first field.
 ° Now take away the marker.
 ° N. B.  Lines whose 2nd field doesn't comprise *.app  are passed on unmodified.
0
27.01.2020, 21:33
awk -F, -vOFS=, '$2 ~ /\.app$/ { for (i = NF + 1; i > 2; --i) $i = $(i-1); $2 = "INVALID" } 1' file >newfile

Это создаст newfileиз file. Команда awkустанавливает разделитель поля ввода и вывода в виде запятой, а затем проверяет значение второго столбца на соответствие регулярному выражению, которое соответствует строке .appв конце значения. Если тест проходит успешно, поля записи сдвигаются вправо на один шаг, освобождая место для строки INVALIDв качестве нового второго поля.

Завершающую строку 1можно заменить на { print }(, так будет выводиться каждая строка ).

С данным примером данных выходной файл будет содержать

DOM,PROJ,APP,USER,DATE,TIME,STATUS
www,test,biz.app,bob,6-1-18,09:33,OK
www,INVALID,biz.app,tony,7-11-17,06:22,ok
0
27.01.2020, 21:33

Awkподход:

awk 'BEGIN{ FS = OFS = "," }NR > 1 && $2 ~ /.*\.app/{ $2 = "INVALID" OFS $2 }1' file
  • NR > 1 && $2 ~ /.*\.app/-если номер записи больше1(все, кроме первого )и 2-е поле $2соответствует шаблону/.*\.app/

Выход:

DOM,PROJ,APP,USER,DATE,TIME,STATUS
www,test,biz.app,bob,6-1-18,09:33,OK   
www,INVALID,biz.app,tony,7-11-17,06:22,ok
0
27.01.2020, 21:33

Теги

Похожие вопросы