сценарий для вывода, который, имея то же имя как каталог

Я пытаюсь записать сценарий, в котором вывод нужно назвать в честь его родительского каталога.

Исключая: у Меня есть 3 каталога, названные как 01.10.2018, 11.11.2018, 05.06.2018. В каждом каталоге, имеющем n количество файлов.

Я выполняю команду как указано ниже:

for D in */; do wc -l * > response.txt; done

Я был произведен в каждой папке, но с тем же именем т.е. response.txt.

Вещь, которую я хочу здесь, является этим response.txt Должен быть назван в честь названия его родительского каталога.

0
задан 16 November 2018 в 08:33

2 ответа

Я предполагаю, что Вы хотите иметь своего рода "сводный файл", который содержит количество строки всех файлов в каждом соответствующем каталоге.

Используя шарики оболочки, как Вы сделал, это могло быть понято как это:

for directory in */ ; do
    wc -l "$directory"/* > "$directory/$(basename "$directory").txt"
done

Во-первых, я изменил Ваш шарик для wc для соответствия файлам в соответствующем каталоге вместо текущей папки как я предполагаю, это - то, что Вы хотите выполнить. Затем я составляю целевое имя файла путем замены выводом basename команда, которая возвращает последний компонент из пути, который это получает как аргумент (например, "нечто" от "2018-11-16/foo /")

Обратите внимание однако, что в зависимости от Ваших опций оболочки, не все файлы могли бы быть подобраны. Скрытыми файлами по умолчанию (имя файла, запускающееся с a .) проигнорированы, если Вы не установили dotglob набор опции с shopt -s dotglob.

1
ответ дан 27 October 2019 в 04:26

Я не уверен точно, что Вы желающий сделать с "туалетом-l", так как это помещает тот же самый ответ в каждый файл response.txt. Вы надеющийся получать количество записей в рамках каждого каталога и помещать это в файл response.txt, связанный с тем каталогом? Если так, попробуйте это

for D in */; do
  wc -l ${D}/* >${D}-response.txt
done

Это циклично выполнится через каждый каталог, получит общее количество объектов в каждом каталоге и сохранит вывод в файле, который запускается с имени каталога и концов в "-response.txt"

Надеюсь, это поможет.

0
ответ дан 27 October 2019 в 04:26

Другие вопросы по тегам:

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