Как разделить поле 1 на отдельные строки, но сохранить копирование поля 2 для каждой новой создаваемой строки

Да, значительная разница. См. http://www.gnu.org/software/bash/manual/bashref.html#Process-Substitution

Подстановка процессов поддерживается в системах, поддерживающих именованные каналы (FIFO) или метод/dev/fd именования открытых файлов. Он имеет вид

list )

или

> ( list )

Выполняется процесс list с его входом или выходом, подключенным к FIFO или какому-либо файлу в/dev/fd. Имя этого файла передается в качестве аргумента текущей команде в результате расширения. Если используется форма > ( list ), запись в файл обеспечит ввод для list . Если используется форма list ), файл, переданный в качестве аргумента, должен считываться для получения выходных данных list . Обратите внимание, что между и левой скобкой не должно быть места, иначе конструкция будет интерпретироваться как перенаправление.

Примеры: comm требует сортировки входных файлов:

comm <(sort file1) <(sort file2)

Использование > (cmd) происходит реже. Обычно я использую его только с tee , чтобы отправить некоторые выходные данные на различные конвейеры

seq 10 | tee >(rev > out1) >(tac > out2) >(shuf > out3)

-121--128609-

Главная загрузочная запись (MBR) в начале диска содержит только 446 байт кода, поэтому она крошечная и не может сделать много. Поэтому обычным способом загрузки является выполнение так называемой "загрузки цепочки", когда MBR загружает код в начале активного раздела и переходит к этому коду. Оставляя первые два сектора свободными, файловая система EXT позволяет использовать начало раздела для такого кода загрузки цепочки, когда ваша файловая система EXT находится в активном разделе. Дополнительную информацию о том, как работает этот процесс загрузки, можно найти здесь:

http://wiki.osdev.org/Boot_Sequence#The_Traditional_Way

-121--111359-

Существует функция tcsetpgrp , которая задает основную группу процессов для конкретного терминала и, следовательно, позволяет оболочке снова стать основным процессом. Кроме того, упомянутая функция tcgetpgrp принимает в качестве аргумента дескриптор файла, а не pid. Я предлагаю посмотреть мужские страницы на эти две функции.

6
18.01.2018, 20:12
1 ответ

Вы также можете использовать функцию разделения с awk:

awk -F"\t" 'BEGIN { OFS="\t" } { cols=split($2,arr," "); for ( i=1; i<=cols; i++ ) { print $1,arr[i] }}'
2
27.01.2020, 20:20

Теги

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