@bashlaevs

Bash — как вывести только первое слово?

Добрый день. Помогите пожалуйста разобраться вот с чем: у меня есть команда, которая фильтрует сообщение
echo `less 1634886389/executed2_6690.txt | awk -F"#" '{print $2}'`

где я ищу по разделителю # и собственно вывожу в консоль данные (для читабельности разбил по колонкам, а так вообще оно мне выводит в одну строку все)
674256 10745127/2 name 
674262 10745127/3 name 
674268 10745127/4 name 
674274 10745127/5 name 
674280 10745127/6 name

изначально строка очень длинная, но мне из нее нужно выдернуть только значение 674256, 674262 и т.д. чтобы они были без знака # и каждая с новой строки - в оригинале они со знаком #
#674256 10745127/2 name #674262 10745127/3 name #674268 10745127/4 name #674274 10745127/5 name #674280 10745127/6 name

Вопрос - как мне сделать так, чтобы я мог выводить только значение из первой колонки и записать в файл, при условии что в источнике это не единственное слово со знаком # ?
  • Вопрос задан
  • 1427 просмотров
Решения вопроса 1
xotkot
@xotkot
хорошо есть и хорошо весьма
изначально строка очень длинная, но мне из нее нужно выдернуть только значение 674256, 674262 и т.д. чтобы они были без знака # и каждая с новой строки - в оригинале они со знаком #

$ echo "#674256 10745127/2 name #674262 10745127/3 name #674268 10745127/4 name #674274 10745127/5 name #674280 10745127/6 name" | awk 'BEGIN{RS="#"}{print $1}'

674256
674262
674268
674274
674280
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@unseriously
Дернуть первый столбец поможет команда cut:
cut -f 1 -d ' '
добавить ее в конец основной команды
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы