如何使用shell修改文件?

时间:2014-03-20 07:30:59

标签: linux shell redirect

我正在使用linux。

我必须将html文件转换为txt。所以我使用的是html2txt命令

我制作了一个名为" converttohtml.sh"

的shell脚本
    html2text -width 10000 $1 > $1

然后我打算运行查找并转换所有文件。

   find . -name "*.htm" -exec ./converttohtml.sh {} \; 

但$ 1> $ 1重定向不起作用。如果输入文件是1.htm(1.2kb),则输出文件1.htm是0字节。但是当我在命令行上做的时候

    $ html2txt -width 10000 1.htm > 1.htm 

它工作正常。 1.htm只显示文字。我不知道为什么$ 1> 1美元不起作用。

1 个答案:

答案 0 :(得分:0)

你不能这样做。在运行html2text命令之前,处理文件并同时进行重定向将覆盖0字节的shell作为shell进程重定向,这实际上意味着即使在html2text处理文件之前也是0字节。

以这种方式使用:

html2text -width 10000 "$1" > "$1.tmp" && mv "$1.tmp" "$1"