Открытие файлов в vim со списком файлов не работает

Если вам действительно нужно сделать это с помощью awk, то, возможно, используйте массив, проиндексированный номером записи по модулю 3

awk '{i = (NR-1)%3; a[i] = a[i]? a[i] OFS $0 : $0} END{for(i=0;i<3;i++) print a[i]}' file
R1C1 R1C2 R1C3
R2C1 R2C2 R2C3
R3C1 R3C2 R3C3

Если доступна утилитаrs(r e s hape ), то

rs 0 3 < file | rs -T

или

paste - - - < file | rs -c -T
0
04.06.2021, 17:21
1 ответ

Это связано с порядком, в котором различные типы расширений выполняются в оболочке. На справочной странице bashговорится:

Expansion is performed on the command line after it has been split into words. There are seven kinds of expansion performed: brace expansion, tilde expansion, parameter and variable expansion, command substitution, arithmetic expansion, word splitting, and pathname expansion.

Замена ~— это расширение с помощью тильды, а ваш $(...)— замена команды. Теперь вы видите, что после выполнения подстановки команд замены тильды больше нет. С реальными абсолютными путями (, начинающимися с корня файловой системы /), это сработает.

Но вы можете выполнить расширение самостоятельно с помощьюsed:

vim $(sed "s_~_${HOME}_g" filelist)
1
28.07.2021, 11:27

Теги

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