时间:2023-01-31来源:系统屋作者:zhijie
处理文件和数据
要在当前目录中按名称定位文件,find 。 -iname ’*something*‘(或者相类似的)。要按名称查找任何地方的文件,使用 locate something(但请记住,updatedb 可能还没有索引最近创建的文件)。
对于源代码或数据文件进行的常规搜索(要比 grep -r 更高级),使用 ag。
要将 HTML 转成文本:lynx -dump -stdin。
对于 Markdown、HTML,以及各种类型的文档转换,可以试试 pandoc。
如果你必须处理 XML,xmlstarlet 虽然有点老旧,但是很好用。
对于 JSON,使用jq。
对于 Excel 或 CSV 文件,csvkit 提供了 in2csv,csvcut,csvjoin,csvgrep 等工具。
对于亚马逊 S3 ,s3cmd 会很方便,而 s4cmd 则更快速。亚马逊的 aws 则是其它 AWS 相关任务的必备。
掌握 sort 和 uniq,包括 uniq 的 -u 和 -d 选项——参见下面的单行程序。
掌握 cut,paste 和 join,它们用于处理文本文件。很多人会使用 cut,但常常忘了 join。
了解 tee,它会将 stdin 同时复制到一个文件和 stdout,如 ls -al | tee file.txt。
知道 locale 会以微妙的方式对命令行工具产生大量的影响,包括排序的顺序(整理)以及性能。大多数安装好的 Linux 会设置 LANG 或其它 locale 环境变量为本地设置,比如像 US English。但是,你要明白,如果改变了本地环境,那么排序也将改变。而且 i18n 过程会让排序或其它命令的运行慢好多倍。在某些情形中(如像下面那样的设置操作或唯一性操作),你可以安全地整个忽略缓慢的 i18n 过程,然后使用传统的基于字节的排序顺序 export LC_ALL=C。
了解基本的改动数据的 awk 和 sed 技能。例如,计算某个文本文件第三列所有数字的和:awk ’{ x += $3 } END { print x }‘。这可能比 Python 的同等操作要快3倍,而且要短3倍。
在一个或多个文件中,替换所有出现在特定地方的某个字符串:
perl -pi.bak -e ’s/old-string/new-string/g‘my-files-*.txt
要立即根据某个模式对大量文件重命名,使用 rename。对于复杂的重命名,repren 可以帮助你达成。
# 恢复备份文件 foo.bak -》 foo:
rename ’s/\.bak$//‘*.bak
# 完整的文件名、目录名 foo -》 bar:
repren --full --preserve-case--from foo --to bar 。
使用 shuf 来从某个文件中打乱或随机选择行。
了解 sort 的选项。知道这些键是怎么工作的(-t和-k)。特别是,注意你需要写-k1,1来只通过第一个字段排序;-k1意味着根据整行排序。
稳定排序(sort -s)会很有用。例如,要首先按字段2排序,然后再按字段1排序,你可以使用sort -k1,1 | sort -s -k2,2
如果你曾经需要在 Bash 命令行中写一个水平制表符(如,用于 -t 参数的排序),按ctrl-v [Tab],或者写$’\t‘(后面的更好,因为你可以复制/粘贴)。
对源代码进行补丁的标准工具是 diff 和 patch。 用 diffstat 来统计 diff 情况。注意 diff -r可以用于整个目录,所以可以用 diff -r tree1 tree2 | diffstat 来统计(两个目录的)差异。
对于二进制文件,使用 hd 进行简单十六进制转储,以及 bvi 用于二进制编辑。
还是用于二进制文件,strings(加上 grep 等)可以让你找出一点文本。
对于二进制文件的差异(delta 压缩),可以使用 xdelta3。
要转换文本编码,试试 iconv 吧,或者对于更高级的用途使用 uconv;它支持一些高级的 Unicode 的东西。例如,这个命令可以转换为小写并移除所有重音符号(通过扩展和丢弃):
uconv -f utf-8-t utf-8-x ’::Any-Lower; ::Any-NFD; [:Nonspacing Mark:] 》; ::Any-NFC; ‘《 input.txt 》 output.txt
要将文件分割成几个部分,来看看 split(按大小分割)和 csplit(按格式分割)吧。
使用 zless,zmore,zcat 和 zgrep 来操作压缩文件。
2023-01-31
Linux系统如何在Git里撤销操作2023-01-30
Linux替换硬盘已挂载目录的技巧2023-01-30
Fedora 21升级Fedora 22的方法使用DenyHosts能够进行自动屏ip的功能,掌握DenyHosts在Linux系统中的安装是很有必要的,那么在Linux系统中要如何安装DenyHosts工具呢?安装后又要如何配置呢?这都是用户需要学习的。...
2023-01-30
在使用vps安装Linux系统后,发现可用分区不足,这主要是vps安装后没有进行相关配置所致,下面小编就给大家介绍下Linux vps系统盘如何分区,深感分区不同的朋友可以来学习下。...
2023-01-30