У меня в окне электронной почты есть текстовое окно, которое выглядит примерно так:
100 some random text
101 some more random text
102 lots of random text, all different
103 lots of random text, all the same
Я хочу извлечь числа, то есть первое слово в каждой строке. У меня на терминале Linux открыт терминал bash ...
Если бы они были в текстовом файле, я бы сделал это:
awk '{print $1}' mytextfile.txt
Я бы хотел вставить их и вывести свои номера без создания временного файла.
моя наивная первая попытка выглядела так:
$ awk '{print $1}'
100 some random text
100
101 some more random text
101
102 lots of random text, all different
103 lots of random text, all the same
102
103
Буферизация stdin и stdout делает это хешем. Я не возражал бы, если бы стандартный вывод печатался первым, а затем - стандартным выводом; это то, что произошло бы, если бы я вставил, например, в «sort», но awk и sed - это отдельная история.
немного больше мыслей дало мне это:
открыть два терминала. Создайте файл fifo. Читайте с fifo на одном терминале, пишите на другом.
Это действительно работает, но я ленивый. Я не хочу открывать второй терминал. Есть ли способ в оболочке, чтобы я мог скрыть текст, отображаемый на экране, когда я передаю его в канал, чтобы я вставил это:
100 some random text
101 some more random text
102 lots of random text, all different
103 lots of random text, all the same
но видите это?
$ awk '{print $1}'
100
101
102
103