Как указать имена файлов с нулевым завершением для wc --files0-from=F

Мне нужно протестировать wc с флагом --files0-from=F, но я не знаю, как написать файл, содержащий имена файлов, завершающиеся NUL? Что бы я ни пытался, он объединяет имена файлов вместе и выводит:

wc: '1.txt2.txt': No such file or directory
wc: '1.txt 2.txt': No such file or directory
wc: '1.txt\02.txt': No such file or directory

Как написать NUL-терминатор?


person ivanacorovic    schedule 26.10.2018    source источник


Ответы (2)


Судя по всему, вы не можете. Имена файлов с нулевым завершением являются результатом работы другой программы. Что я сделал, так это поместил все нужные мне файлы в одну папку, а затем выполнил там эту команду:

find * -print0 > feed.txt

Таким образом, в файле feed.txt теперь есть имена файлов, разделенные символом NUL, что мне и нужно для успешного выполнения.

wc --files0-from=feed.txt
person ivanacorovic    schedule 27.10.2018

Да, я проверил, как сказал @ivanacorovic, и это работает.

-print0 обязателен, а -print не работает.


Кстати.
Обратитесь к этот вопрос, я нашел способ ввести NUL-terminated NUL.
^@ равно NUL, однако это не комбинация @ и ^. Правильный способ ввода:
Ctrl+v с последующим Ctrl+Shift+@
На самом деле вы можете увидеть ^@ через vim по опции -print0.

person Leo    schedule 23.04.2019
comment
В zsh контроль @ дает ноль. Я попробовал это для du, который использует ту же опцию --files0-from=. - person Pierre ALBARÈDE; 20.11.2020