Символьная ссылка на часть файла?

Вы почти там. paste помещает символ табуляции между каждым столбцом, таким образом, все, что необходимо сделать, разворачивают вкладки. (Я предполагаю, что Ваши файлы не содержат вкладки.) Действительно необходимо определить ширину левого столбца. С (достаточно недавний) утилиты GNU, wc -L показывает длину самой длинной строки. В других системах сделайте первичную обработку с awk. +1 сумма пробела, который Вы хотите между столбцами.

paste left.txt right.txt | expand -t $(($(wc -L <left.txt) + 1))
paste left.txt right.txt | expand -t $(awk 'n<length {n=length} END {print n+1}')

Если у Вас есть утилита столбца BSD, можно использовать ее, чтобы определить ширину столбца и развернуть вкладки сразу. ( литеральный символ табуляции; под bash/ksh/zsh можно использовать $'\t' вместо этого, и в любой оболочке можно использовать "$(printf '\t')".)

paste left.txt right.txt | column -s '␉' -t
14
25.11.2011, 04:17
3 ответа

Нет. Необходимо или сослаться на целый файл, или необходимо скопировать часть файла, которым Вы интересуетесь.

12
27.01.2020, 19:50

Да, это (несколько) возможно, по крайней мере, на Linux с некоторыми ограничениями.

Метод должен создать циклическое устройство чтения-записи, которое отображается на подмножество файла.

например:

#!/bin/bash
for ((i=0;i<10000;i++)); do
    printf "%7d\n" $i
done >/var/tmp/file
losetup -v -f -o 512 --sizelimit 512 /var/tmp/file
losetup -a
head -2 /var/tmp/file
echo ...
tail -2 /var/tmp/file
echo ===
head -2 /dev/loop0
echo ...
tail -2 /dev/loop0 
printf "I was here" > /dev/loop0
grep here /var/tmp/file
losetup -d /dev/loop0

вывод:

loop device: /dev/loop0
/dev/loop0: [0808]:136392 (/var/tmp/file), offset 512, size 512
      0
      1
...
   9998
   9999
===
     64
     65
...
    126
    127
I was here   65

Я верю и смещению и размеру, должны быть несколько из размера блока (512 байтов).

Вероятно, необходимо быть корнем, чтобы создать и получить доступ к циклическому устройству.

При необходимости в символьной ссылке можно создать тот, который указывает на циклическое устройство.

12
27.01.2020, 19:50

Могло быть возможно (создать нормальную символьную ссылку, указывающую на часть файла) в файловой системе, которая реализует "файл как каталог" идея, которая появилась - помимо других авторов - в планах относительно reiserfs, но реализации reiserfs не понравилось за проблемы вызванная реализация.

2
27.01.2020, 19:50

Теги

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