使用命令行小写所有文件中的所有文本?

时间:2012-11-01 17:38:03

标签: command-line ssh

我一直在试用几个命令,比如

dd if=*.xml of=*.xml conv=lcase

将我文件夹中所有xml文件的所有内容扩展为小写。文件夹文件名已经是小写的,我正在尝试将所有实际内容更改为小写。

有人可以发布命令来执行此操作或告诉我我做错了什么吗?谢谢!

3 个答案:

答案 0 :(得分:2)

使用sed编辑文件,这样可以避免编写循环。

sed  -ri 's/.+/\L\0/' *.xml

答案 1 :(得分:1)

for i in *.xml; do tr A-Z a-z < $i > tmp && mv tmp $i; done

如果您的文件名包含不常见的字符(空格,换行符,控制字符等),您可能需要引用“$ i”,但由于您说这些名称都是小写的,我假设没有必要。

答案 2 :(得分:1)

我会选择:

sed -ie 's/\(.*\)/\L\1/' *.xml

我看到您已使用ssh标记了您的问题。你没有指定它,但这是否意味着你想在ssh命令结束时运行这个命令?在那种情况下,你需要逃避星号,因为它们应该被远程解释,如下所示:

sed -ie 's/\(.*\)/\L\1/' \*.xml