zh: Refine & sync section "Processing files and data".

This commit is contained in:
Thomas Lee 2015-11-08 12:32:31 +08:00
parent 517d5a5442
commit 104e56119e

View file

@ -183,6 +183,8 @@
- 使用 [`jq`](http://stedolan.github.io/jq/) 处理 JSON。 - 使用 [`jq`](http://stedolan.github.io/jq/) 处理 JSON。
- 使用 [`shyaml`](https://github.com/0k/shyaml) 处理 YAML。
- Excel 或 CSV 文件的处理,[csvkit](https://github.com/onyxfish/csvkit) 提供了 `in2csv``csvcut``csvjoin``csvgrep` 等工具。 - Excel 或 CSV 文件的处理,[csvkit](https://github.com/onyxfish/csvkit) 提供了 `in2csv``csvcut``csvjoin``csvgrep` 等工具。
- 关于 Amazon S3[`s3cmd`](https://github.com/s3tools/s3cmd) 很方便而 [`s4cmd`](https://github.com/bloomreach/s4cmd) 更快。Amazon 官方的 [`aws`](https://github.com/aws/aws-cli) 以及 [`saws`](https://github.com/donnemartin/saws) 是其他 AWS 相关工作的基础。 - 关于 Amazon S3[`s3cmd`](https://github.com/s3tools/s3cmd) 很方便而 [`s4cmd`](https://github.com/bloomreach/s4cmd) 更快。Amazon 官方的 [`aws`](https://github.com/aws/aws-cli) 以及 [`saws`](https://github.com/donnemartin/saws) 是其他 AWS 相关工作的基础。
@ -204,12 +206,19 @@
perl -pi.bak -e 's/old-string/new-string/g' my-files-*.txt perl -pi.bak -e 's/old-string/new-string/g' my-files-*.txt
``` ```
- 依据某种模式批量重命名多个文件,使用 `rename`。对于复杂的重命名规则,[`repren`](https://github.com/jlevy/repren) 或许有帮助。 - 使用 [`repren`](https://github.com/jlevy/repren) 来批量重命名,或是在多个文件中搜索替换。(有些时候 `rename` 命令也可以批量重命名,但要注意,它在不同 Linux 发行版中的功能并不完全一样。)
```sh ```sh
# Recover backup files foo.bak -> foo: # Full rename of filenames, directories, and contents foo -> bar:
rename 's/\.bak$//' *.bak
# Full rename of filenamesdirectoriesand contents foo -> bar:
repren --full --preserve-case --from foo --to bar . repren --full --preserve-case --from foo --to bar .
# Recover backup files whatever.bak -> whatever:
repren --renames --from '(.*)\.bak' --to '\1' *.bak
# Same as above, using rename, if available:
rename 's/\.bak$//' *.bak
```
- 根据 man 页面的描述,`rsync` 真的是一个快速且非常灵活的文件复制工具。它通常被用于机器间的同步,但在本地也同样有用。它同时也是删除大量文件的[最快方法](https://web.archive.org/web/20130929001850/http://linuxnote.net/jianingy/en/linux/a-fast-way-to-remove-huge-number-of-files.html)之一:
```sh
mkdir empty && rsync -r --delete empty/ some-dir && rmdir some-dir
``` ```
- 使用 `shuf` 从一个文件中随机选取多行。 - 使用 `shuf` 从一个文件中随机选取多行。
@ -222,7 +231,7 @@
- 对于二进制文件,使用 `hd` 使其以十六进制显示以及使用 `bvi` 来编辑二进制。 - 对于二进制文件,使用 `hd` 使其以十六进制显示以及使用 `bvi` 来编辑二进制。
- 同样对于二进制文件,使用 `strings`(包括 `grep` 等等)允许你查找一些文本。 - 同样对于二进制文件,`strings`(包括 `grep` 等等)允许你查找一些文本。
- 二进制文件对比Delta 压缩),使用 `xdelta3` - 二进制文件对比Delta 压缩),使用 `xdelta3`
@ -233,6 +242,8 @@
- 拆分文件,查看 `split`(按大小拆分)和 `csplit`(按模式拆分)。 - 拆分文件,查看 `split`(按大小拆分)和 `csplit`(按模式拆分)。
- 用 [`dateutils`](http://www.fresse.org/dateutils/) 中的 `dateadd`, `datediff`, `strptime` 等工具操作日期和时间表达式。
- 使用 `zless``zmore``zcat` 和 `zgrep` 对压缩过的文件进行操作。 - 使用 `zless``zmore``zcat` 和 `zgrep` 对压缩过的文件进行操作。