[*] Найдите определенный набор файлов с помощью команды find ;
Для любого найденного файла поместите соответствующий вывод -printf к переменной, называемому STR и перенесите его в gawk (и не используйте/используйте, что вы вывод, иначе, иначе, иначе и перенесите его на gawk (и не используйте/не используйте, что иначе в любом месте); Программа GAWK для соответствующего файла. Содержимое соответствующей переменной str должно быть доступно в программе. Он содержит два файла, file1.txt и file2.txt . Файлы находятся в кодировании UTF-8. Файл, чье имя является file1.txt , содержит два символа: ab . Его размер составляет 2 байта. Файл, чье имя является file2.txt содержит три символа: cde . Его размер 3 байта. Я хочу распечатать эти две строки и добавить соответствующее содержимое STR (имя файла, размер файла) к каждой строке. Таким образом, ожидаемый выход < /p>
Код: Выделить всё
AB;d/ir/file1.txt,2
CDE;d/ir/file2.txt,3
< /code>
Я попробовал следующую команду: < /p>
LC_ALL=en_US.utf8; find "/d/ir" -name "file*.txt" -type f -printf "%p,%s" -execdir gawk -v str="$7" '{
print($0 ";" str)
}' "{}" \+
What is the correct command that solves the problem? Обратите внимание, что я не хочу, чтобы выходы опции -printf были показаны/напечатаны вне контекста Gawk: я хочу передать их только в Gawk, так что только программа Gawk знает, как их использовать. Если программа GAWK не использует их вообще, их нельзя показывать нигде.>
Подробнее здесь: https://stackoverflow.com/questions/795 ... correspond