Как захватить символы перед запятой в списке и экспортировать в скрипт? [Дубликат]

У этого вопроса уже есть ответ: Импортировать пользователей из CSV-файла 6 ответов

У меня есть файл, содержащий список пользователей и информацию, каждая строка - отдельный пользователь, написанный так: [!d6 ]

alfred,butler,male,70,7:15. 

Я хочу захватить имена только из списка, чтобы я мог создать для них пользователя.

Как только у меня есть имена, я могу просто использовать цикл for и echo useradd с каждым из имен пользователей, а затем просто скопировать и вставить текст. Как я подхожу к захвату символов до первой запятой?

1
задан 5 February 2017 в 23:42

1 ответ

Вы можете использовать cut, чтобы захватить первое поле, а затем подключиться к контуру while для запуска команд с именами в качестве входных данных:

cut -d ',' -f1 file | while read line; do echo "$line"; done

, очевидно, этот скрипт ничего полезного не делает поскольку это - заменить echo тем, что вы хотите сделать для каждого имени, например sudo useradd (после тестирования с помощью echo)

Объяснение

-d ',' use запятая как разделитель (d) -f1 первое (1) поле (f) while read line чтение из файла, цикл по каждой строке как переменная $line do <command> "$line" выполнить <command> на аргумент расширен из переменной (т. е. на каждой строке выходного потока)
1
ответ дан 23 May 2018 в 01:45
  • 1
    Спасибо! Это выполнялось именно так, как я этого хотел. Поэтому я действительно могу расстаться, узнав из этого, что -d и -f1 делают то, что именно (само по себе). Я понимаю, что перед трубой он режет перед запятой. – Danny 5 February 2017 в 23:42
  • 2
    Поэтому, если я правильно понимаю это, то -d говорит, что используйте «,» как sepperator и f1 в качестве первого поля. Цикл while пробегает каждую строку, и каждая строка выполняется по очереди. С учетом сказанного я мог бы использовать ту же самую команду, чтобы захватить третий столбец, используя -f3. Можно ли захватить только женщин-пользователей мужских пользователей с этой командой в третьей колонке? – Danny 6 February 2017 в 01:11

Другие вопросы по тегам:

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