0

我正在使用 html2text 将一些 html 文件转换为文本,并希望将文件名 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 的第一个参数之外,我如何保留重用文件名?可以在 -exec 中使用 for,但是如何使用 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 {}

不是最好的.. 但无论如何.. [以防你想知道为什么它不仅仅是 find 参数中的一个简单的 -name '*html' ,这是一个 mediawiki 的 wget .. ]

4

2 回答 2

0

我遇到了同样的问题——为了记录,这是我想出的替代 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
于 2014-01-07T21:22:04.533 回答
0

您应该尝试使用基本名称:

$ man basename
于 2011-03-05T12:53:52.417 回答