Почему мой файл истории zsh не записывается после каждого события?

{ paste -d,  /dev/null "${in}"/folders_names.txt | tr -d \\n | cut -c2-; \
sed 's|.*|'"${in}"'/&/file.txt|' "${in}"/folders_names.txt \
| tr \\n \\0 | xargs -0 paste -d,; } > all_files.csv

Первая команда

paste -d,  /dev/null "${in}"/folders_names.txt | tr -d \\n | cut -c2-

печатает заголовок, например если ваш "$ {in}" / folder_names.txt равен:

w
x
y
z

, он печатает w, x, y, z

Команда sed обрабатывает то же самое файл, так что каждая строка становится путем, например if in = a / b / c :

a/b/c/w/file.txt
a/b/c/x/file.txt
a/b/c/y/file.txt
a/b/c/z/file.txt

и результат tr преобразуется в ввод, разделенный пустыми значениями, поданный на paste через xargs - 0 , поэтому конечный результат будет, например,

w,x,y,z
5,4,5,7
8,2,1,5
6,1,1,1
1,3,5,9
3,1,8,9

Если ни одна строка в вашем имя_папокs.txt не содержит пробелов (то есть нормальных имен файлов), вы можете просто запустить:

{ paste -d,  /dev/null "${in}"/folders_names.txt | tr -d \\n | cut -c2-; \
paste -d, $(sed 's|.*|'"${in}"'/&/file.txt|' "${in}"/folders_names.txt); } > all_files.csv

, поскольку вторая команда расширится до

paste -d, a/b/c/w/file.txt a/b/c/x/file.txt a/b/c/y/file.txt a/b/c/z/file.txt
0
09.03.2018, 01:33
1 ответ

¡Ay, error mío! Necesito una opción más:

setopt -o incappendhistory

Con esto, funciona.

3
28.01.2020, 02:43

Теги

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