【发布时间】:2013-10-02 16:57:45
【问题描述】:
我需要编辑名称中包含特定模式的文件。这些文件分布在多个分层目录中。
我在 xargs 的帮助下使用find 后跟sed 来实现以下相同:
find . -type f -name "file*" | sed -i.bak 's/word1/replace_word1/g'
我的问题是现在我想恢复备份文件 (*.bak) 中的更改。示例目录树将如下所示。我正在寻找 linux 命令(可能是一个链)来实现相同的。
$ tree
.
|-- pdir1
| |-- dir1
| | |-- dir2
| | | |-- file2
| | | `-- file2.bak
| | |-- file1
| | `-- file1.bak
| `-- dir3
| |-- file3
| `-- file3.bak
`-- pdir2
|-- file1
`-- file1.bak
我可以使用以下find 命令找到所有备份文件。但不知道下一步该做什么。如果您能帮我解决这个问题,那将是不言而喻的。
find . -type f -name "file*.bak"
注意
我将此问题视为一般情况。我曾多次遇到这种情况,但为它写了一个小包装脚本而侥幸逃脱。在这里,我希望有一个通用而简洁的解决方案。
【问题讨论】: