В дополнение к ранее отправленным ответам я хотел бы добавить объяснение "2> &1" часть.
> /dev/null
Перенаправляет дескриптор выходного файла (дескрипторы файлов являются числом, которое процесс использует в чтение и запись в файлы, каналы и терминал) в файл/dev/null, который является "grabage, может" системы, поскольку это читает то, что записано в него и отбрасывает те данные.
2>&1
Перенаправляет stderr (вывод "файл" для ошибок) дескриптор файла, который пронумерован 2 к дескриптору файла 1, который был просто перенаправлен к/dev/null, т.е. проигнорирован.
Таким образом, обе из этих частей вместе удостоверяются, что никакой вывод не будет замечен от команды хеша.
, которые будут печатать только все числа и пробелы, возникающие после [1178830]ID: 54376[1178831] в любом вводимом файле.
Я только что немного обновил вышеизложенное, чтобы сделать это немного быстрее с помощью [1178832]*[1178833], а не с помощью [1178834]p[1178835] печатать пустые строки после удаления не{числовых,пробельных} символов.
Он адресует строки из регекса [1178836]/ID: 54376/
, [1178839] через [1178840] $ [1178841] последний и на них [1178842]s///[1178843] удаляются все или любые [1178844]*[1178845] символы [1178846]^[1178847], а не [1178848] [^ 0-] [^ 0-]. 9]*[1178849] затем [1178850]р[1178851] ринтами [1178852]/[1178853] любой [1178854]/[1178855] строкой с [1178856]. [1178857]character remaining.
Используйте [1179398]awk[1179399] и просто выведите последнее поле из всех строк, которые начинаются с файла [1179400] ID:
awk '/^ID:/{печать $NF}'.
Это также напечатает поля, которые не являются числами, однако, чтобы получить только числа, и только во втором поле, используйте
awk '($1=="ID:" && $2~/^[0-9]+$/){печатайте $2}" файл.
Используйте GNU grep с расширенными регулярными выражениями и проанализируйте его дважды:
grep -Eo '^ID: *[0-9]+' файл | grep -o '[0-9]*".
Она печатает любое число после [1179030] ID:
[1180166]-n[1180167] по умолчанию "ничего не печатать", [1180168]/^ID: [0-9][0-9]*$/[1180169] - это "для строк, соответствующих этому регексу" (начинается с "ID: ", затем 1 или более цифр, затем конец строки), и [1180170]s/ID: //p[1180171] имеет форму [1180172]s/pattern/repl/flags[1180173] - [1180174]s[1180175] означает, что мы делаем замену, чтобы заменить образец [1180176]"ID: "[1180177] с текстом замены [1180178]""[1180179] (пустая строка), используя флажок [1180180]p[1180181], что означает "распечатать эту строку после выполнения замены". Вывод:
Используйте grep + awk:
grep "^ID" your_file | awk {'print $2'}
Бонус: легко читать :)