В качестве альтернативы ожиданию выхода из спящего режима можно использовать команду wait
:
sleep 2 &
pid=$!
sleep 1 &
pid_sleep=$!
wait $pid $pid_sleep
echo "commands finished"
Обратите внимание, что это не имеет ничего общего с сортировкой. Это просто соединение линий вместе.
Эти решения предполагают, что вы всегда хотите соединять строки попарно.
Использование стандартаsed
:
$ sed 'N; s/\n/ /' file
~path1/file1.txt ~path1/file1_newname par1 par2 par 53
~path1/file2.txt ~path1/file2_newname par1 par2
~path1/file3.txt ~path1/morepath/file3_newname par31 par121
~path2/file1.txt ~path2/file1_newname par87
~path2/file3.txt ~path2/file3_newname par1
~path2/file4.txt ~path2/file4_newname par2 par3 par4
~path3//path4/file3.txt ~path3/file4_newname par13
Короткий сценарий редактирования sed
будет читать строку и добавлять следующую строку с помощью команды N
. Добавленная строка будет добавлена в пространство шаблона («рабочий буфер» )со встроенным символом новой строки, поэтому замените его пробелом с заменой перед печатью строки.
Или, сpaste
:
$ paste -d ' ' - - <file
~path1/file1.txt ~path1/file1_newname par1 par2 par 53
~path1/file2.txt ~path1/file2_newname par1 par2
~path1/file3.txt ~path1/morepath/file3_newname par31 par121
~path2/file1.txt ~path2/file1_newname par87
~path2/file3.txt ~path2/file3_newname par1
~path2/file4.txt ~path2/file4_newname par2 par3 par4
~path3//path4/file3.txt ~path3/file4_newname par13
Это запрашивает paste
создать два столбца вывода с пробелом в -между ними. Столбцы считываются из строк на входе, создавая эффект попарного соединения строк.
Сawk
:
$ awk '{ getline nextline; print $0, nextline }' file
~path1/file1.txt ~path1/file1_newname par1 par2 par 53
~path1/file2.txt ~path1/file2_newname par1 par2
~path1/file3.txt ~path1/morepath/file3_newname par31 par121
~path2/file1.txt ~path2/file1_newname par87
~path2/file3.txt ~path2/file3_newname par1
~path2/file4.txt ~path2/file4_newname par2 par3 par4
~path3//path4/file3.txt ~path3/file4_newname par13
Если я вас правильно понял, я думаю, это могло бы сработать для вас (с использованием GNUsed
):
sed '1~2N;s/\n/ /' file