Распечатать последний столбец:
awk '' file
Выход:
2968
Переменная NF
устанавливается на общее количество полей во входной записи. $ NF всегда содержит содержимое последнего столбца. Еще короче
awk '$0=$NF' file
У меня есть файл, заполненный такими данными:
15-06-18 22:00 2968
Каждая запись отделяется новой строкой. Я хочу извлечь последний номер (2968). Как я могу это сделать? (Я на Linux с bash
).
Извините, если у меня нет правильных тегов / я пишу в неправильном месте. Я не уверен, где разместить этот вопрос.
Распечатать последний столбец:
awk '' file
Выход:
2968
Переменная NF
устанавливается на общее количество полей во входной записи. $ NF всегда содержит содержимое последнего столбца. Еще короче
awk '$0=$NF' file
Я разобрался с решением, которое удаляет первые 15 символов.
sed 's/^..............//' tmp.txt
Спасибо, @ fixer1234!
Вы можете извлечь необходимые вам данные, используя awk
, cut
или sed
даже некоторые комбинации Grep с регулярным выражением.
Если данные в каждой строке вашего файла соответствуют точному шаблону, представленному здесь:
15-06-18 22:00 2968
Затем вы можете извлечь последний номер следующим образом:
awk '{ print $3 }' file_path
И чтобы сохранить данные, вы можете перенаправить их в другой файл:
awk '{ print $3 }' file_path > new_file
По сути, awk - очень мощный инструмент, используемый для манипулирования текстовыми данными. В твоем случае :
15-06-18 22:00 2968
Выше строки можно рассматривать как 3 строки, разделенные space
промежуточным символом, а awk по умолчанию обрабатывает пробел как разделитель (заданный как -F
).
Попробуйте поиграть с awk, попробуйте это с вашими данными, и вы поймете намного лучше.
awk -F: '{ print $2 }' your_file awk -F- '{ print $3 }' your_file
Не стесняйтесь добавлять более подробно.
Предполагая, что содержимое находится в файле с именем 'file', следует сделать следующее.
cut -d ' ' -f 3 file
cut - это команда Unix. Со страницы руководства:
-d
говорит разделитель, чтобы использовать для резки. -f
какие поля выбрать.file
это исходный файлрезультат идет на стандартный вывод.
Или в bash:
#!/bin/bash cat "$1" | while read day hour value ; do echo $value done