Как удалить и заменить разделитель полей из столбца с помощью awk?

Вы можете добавить их в файл, принадлежащий другой группе. Затем настройте /etc/sudoers, чтобы разрешить этому пользователю запускать сервер под другой группой.

Это не даст пользователю никаких других привилегий sudo (, таких как root ). Затем вы можете использовать оболочку оболочки, чтобы помочь пользователю.

Sudo очень гибко настраивается.

0
25.11.2019, 17:25
4 ответа

С помощью этой команды:

awk '{sub(/;$/,",")sub(/;/," ")}1' file

Вы получите этот вывод:

name_var type_var,
id string,
dt_depot string,
num_artc string
0
28.04.2021, 23:27

Просто с sedзаменой:

$ sed 's/;$/,/; s/;/ /g' file
name_var type_var,
id string,
dt_depot string,
num_artc string

Что касается решения awk, если входной файл должен содержать только 2 заполненных столбца -, вы можете использовать следующее awkвыражение:

$ awk -F";" '{ if (NF==3) $2=$2","; print $1,$2 }' file
name_var type_var,
id string,
dt_depot string,
num_artc string
3
28.04.2021, 23:27

С awkчто-то вроде может работать:

awk -F\; '{print $1" "$2","}'

Если вам не нравится последняя запятая, ее можно переписать так:

 awk -F\; '{ if (NF != 2) print $1" "$2","; else  print $1" "$2;}'
1
28.04.2021, 23:27
$ awk -F';' '{sub(/;$/,","); $1=$1} 1' file
name_var type_var,
id string,
dt_depot string,
num_artc string

Сценарий заменяет каждый ;в конце строки на ,, затем преобразует каждый оставшийся ;в ,, присваивая значение полю, которое приводит к тому, что все разделители полей ввода(;устанавливаются в соответствии с-F';')изменить на разделитель полей вывода (по умолчанию пустой ). Затем он печатает текущую строку, указав истинное условие (1 ), которое вызывает действие по умолчанию(print $0).

2
28.04.2021, 23:27

Теги

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