xargs при сохранении имени файла для пакетного преобразования html в текст - PullRequest
0 голосов
/ 05 марта 2011

Я конвертирую некоторые html-файлы в текст, используя html2text, и хочу сохранить имя файла с именем charliesheenwinning.html как charliesheenwinning.txt или даже charliesheenwinning.html.txt .

find ./ -not -regex ".*\(png\|jpg\|gif\)$" -print0 | xargs -0 -L10 {} max-process=0 html2text {} -o ../potistotallywinning/{}.txt

Конечно, последняя часть -o очень неправильная.Как сохранить повторное использование имени файла после первого аргумента в html2text?Можно использовать для in -exec, но как я могу сделать это с xargs?

обновление

Закончилось

find path/to/dir -type f -not -regex ".*\(gif\|png\|jpg\|jpeg\|mov\|pdf\|txt\)$" -print0 | xargs -0 -L10 --max-procs=0 -I {} html2text -o {}.txt {}
mkdir dir/w/textfiles
cp -r path/to/dir dir/w/textfiles
find dir/w/textfiles -type f -not -regex ".*txt$" -print0 | xargs -0 -L10 --max-procs=0 -I {} rm {}

Не самое лучшее ... но что угодно ... [на тот случай, если вам интересно, почему это не такэто не просто -name '* html' в аргументе find, это был wget медиа-вики ..]

Ответы [ 2 ]

0 голосов
/ 08 января 2014

Я столкнулся с той же проблемой - для записи, вот что я придумал, чтобы получить подстановку в xargs:

seq 100 | xargs -I % -n 1 -P 16 bash -c 'echo % `sed "s/1/X/" <<< %`'

Будет напечатано что-то вроде этого:

10 X0
3 3
12 X2
4 4
11 X1
1 X
15 X5
0 голосов
/ 05 марта 2011

Вы должны попытаться использовать базовое имя:

$ man basename
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...