文件及数据处理
在当前目次下经由过程文件名查找一个文件,应用类似于如许的敕令: find . -iname '*something*' 。在所有路径下经由过程文件名查找文件,应用 locate something (但留意到 updatedb 可能没有对比来新建的文件建立索引,所以你可能无法定位到这些未被索引的文件)。
应用 ag 在源代码或数据文件里检索( grep -r 同样可以做到,但比拟之下 ag 加倍先辈)。
将 HTML 转为文本: lynx -dump -stdin 。
Markdown,HTML,以及所有文档格局之间的转换,尝尝 pandoc 。
当你要处理棘手的 XML 时刻, xmlstarlet 算是上古时代传播下来的神器。
应用 jq 处理 JSON。
应用 shyaml 处理 YAML。
要处理 Excel 或 CSV 文件的话, csvkit 供给了 in2csv , csvcut , csvjoin , csvgrep 等便利易用的对象。
当你要处理 Amazon S3 相干的工作的时刻, s3cmd 是一个很便利的对象而 s4cmd 的效力更高。Amazon 官方供给的 aws 以及 saws 是其他 AWS 相干工作的基本,值灯揭捉?习。
懂得若何应用 sort 和 uniq ,包含 uniq 的 -u 参数和 -d 参数,具体内容在后文单行脚本节中。别的可以懂得一下 comm 。
懂得若何应用 cut , paste 和 join 来更改文件。很多人都邑应用 cut ,但遗忘了 join 。
懂得若何应用 wc 去枷⒚鹇行数( -l ),字符数( -m ),单词数( -w )以及字节数( -c )。
懂得若何应用 tee 将标准输入复制到文件甚至标准输出,例如 ls -al | tee file.txt 。
要进行一些复杂的计算,比如分组、逆序和一些其他的统计分析,可以推敲应用 datamash 。
留意到说话设置(中文或英文等)对很多敕令行对象有一些奥妙的影响,比如排序的次序和机能。大年夜多半 Linux 的安装过程会将 LANG 或其他有关的变量设置为相符本地的设置。要意识到当你改变说话设置时,排序的结不雅可能会改变。明白国际化可能会使 sort 或其他敕令运行效力降低 很多倍 。某些情况下(例如集合运算)你可以宁神的应用 export LC_ALL=C 来忽视掉落国际化并按照字节来断定次序。
你可以零丁指定某一条敕令的情况,只需在调用时把情况变量设定放在敕令的前面,例如 TZ=Pacific/Fiji date 可以获取斐济的时光。
懂得若何应用 awk 和 sed 来进内行单的数据处理。例如,将文本文件中第三列的所稀有字乞降: awk '{ x += $3 } END { print x }' 。这可能比一致功能的 Python 代码快三倍且代码量少三倍。
调换一个或多个文件中出现的字符串:
- perl -pi.bak -e 's/old-string/new-string/g' my-files-*.txt
- 应用 repren 来批量重定名文件,或是在多个文件中搜刮调换内容。(有些时刻 rename 敕令也可以批量重定名,但要留意,它在不合 Linux 发行版中的功能并不完全一样。)
- # 将文件、目次和内容全部重定名 foo -> bar:
- repren --full --preserve-case --from foo --to bar .
- # 还原所有备份文件 whatever.bak -> whatever:
- repren --renames --from '(.*)\.bak' --to '\1' *.bak
- # 用 rename 实现上述功能(若可用):
- rename 's/\.bak$//' *.bak
根据 man 页面的描述, rsync 是一个快速且异常灵活的文件复制对象。它有名于设备之间的文件同步,但其实它在本地情况下也同样有效。在安然设置许可下,用 rsync 代替 scp 可以实现文件续传,而不消从新大年夜头开端。它同时也是删除大年夜量文件的 最快办法 之一:
- mkdir empty && rsync -r --delete empty/ some-dir && rmdir some-dir
应用 shuf 可以以行动单位来打乱文件的内容或年腋荷琐文件中随机拔取多行。
懂得 sort 的参数。显示数字时,应用 -n 或者 -h 来显示更易读的数(例如 du -h 的输出)。明白排序时关键字的工作道理( -t 和 -k )。例如,留意到你须要 -k1,1 来仅按第一个域来排序,而 -k1 意味着按整行排序。稳定排序( sort -s )在某些情况下很有效。例如,以第二个域为主关键字,第一个域为次关键字进行排序,你可以应用 sort -k1,1 | sort -s -k2,2 。
如不雅你想在 Bash 敕令行中写 tab 制表符,按下 ctrl-v [Tab] 或键入 $'\t' (后者可能更好,因为你可以复制粘贴它)。
标准的源代码比较及归并对象是 diff 和 patch 。应用 diffstat 查看变革总览数据。留意到 diff -r 半数个文件夹有效。应用 diff -r tree1 tree2 | diffstat 查看变革的统计数据。 vimdiff 用于比对并编辑文件。
以下是 仅限于 Windows 体系的技能。
- 在 Windows 10 上,你可以应用 Bash on Ubuntu on Windows ,它供给了一个熟悉的 Bash 情况,包含了不少 Unix 敕令行对象。好处是它许可 Linux 上编写的法度榜样可以或许在 Windows 上运行,而另一方面,Windows 上编写的法度榜样却无法在 Bash 敕令行中运行。
推荐阅读
如不雅让 办事器3000 上的页面向 办事器 3001 提议请求会如何呢?浏览器的同源策略,出于防备跨站脚本的进击,禁止客户端脚本(如 JavaScript)对不合域的办事进行跨站调用。一般的,只要网站>>>详细阅读
地址:http://www.17bianji.com/lsqh/35418.html
1/2 1