脚本是系统里的一项基本功,就算它的语法看起来有点奇怪,读起来也不是特别顺畅,但在一些情况下,它仍然是最能干的解决办法。学好Shell脚本,不仅让你对系统了解更深,还能让你手快地做好很多日常任务。
在这篇文章里,我会跟你分享在Linux Shell里处理文字时最常使用的几个“利器”:、、、、、、、、、和,而且每个都会配上实用的例子。我们的目标是让脚本简单直白,最好一行命令或者两行就搞定。
是个找文件的小能手,本事大得很,不管文件躲在哪个角落,它都能帮你把它揪出来。
- 查找 和 文件:
- 使用正则表达式查找 和 :
: 忽略大小写的正则
- 查找最近 7 天被访问的文件:
- 查找大于 2K 的文件:
- 删除 文件:
- 将 10 天前的 文件拷贝到 目录:
grep是个超级好用的工具,专门用来在大量文字中找到你需要的内容。
- 只显示匹配行:
- 统计匹配次数:
- 打印匹配行的行号:
- 递归搜索:
- 多模式匹配:
- 查找并删除文件:
具有将命令输出作为后续命令行参数的功能,从而实现了多个命令的高效与灵活链式执行。
- 多行输出转为单行:
- 将文件中的每一行传递给脚本:
- 统计 文件中的行数:
进行数据去重与排序操作:利用 命令实现数据的有序排列,而采用 工具则旨在消除序列中的冗余重复项,从而达到精简数据集的目的。
- 按数字降序排序:
- 去除重复行:
- 统计每行出现的次数:
是一个在和操作系统中广泛使用的命令行工具,其全称为""。该工具主要用于对来自标准输入或指定文件的字符进行替换、删除或压缩操作。
基本语法结构如下:
- 从字符集 指定了需要被转换或删除的原始字符。
- 到字符集 指定了转换目标字符或操作(如果只想删除字符,则此部分可省略)。
例如,以下命令将把输入文本中的所有小写字母转换为大写字母:
另一个例子是删除文本中的所有数字:
tr命令还支持一些选项来扩展其功能,如用于删除字符,而不是转换它们;用于压缩连续重复的字符为一个。
cut`是 Linux 中用于按列截取文本的命令。它通过指定分隔符(默认为制表符)来选择并提取文件中的特定字段或字符。它常用于处理结构化数据,如 CSV 文件,快速提取有用的信息。
- 截取第 2 和第 4 列:
- 排除第 3 列:
paste命令用于将多个文件的内容按列拼接在一起,生成一个新的输出。它会逐行读取每个文件,并将相应行的内容用制表符(默认)或指定的分隔符连接起来。常见用法包括将两个文件横向拼接在一起,或将单个文件的多列数据合并。
将两个文本按列拼接到一起
默认的定界符是制表符,可以用-d指明定界符。
(word count)是一个用于统计文件内容的命令行工具,能够统计文件中的行数、单词数、字符数等信息。常见用法包括统计行数、单词数以及字符数。它可以处理多个文件,并在终端中输出每个文件的统计结果,通常用于文本分析和简单的文件内容审计。
- 统计行数:
- 统计单词数:
(Stream Editor)是一个轻量级、强大的文本处理工具,适用于在流式数据或文件中进行快速的查找、替换、删除、插入等操作。它以非交互的方式逐行处理文本,支持正则表达式,常用于批量编辑和转换文件内容。的常见用途包括替换字符串、删除或提取特定行、插入文本等,非常适合需要在命令行中对文件进行简单编辑的场景。
- 替换每行的第一个匹配项:
- 全局替换:
- 移除空行:
是处理结构化文本的强大工具,支持复杂的模式匹配和数据处理。
- 打印每行的第二个字段:
- 统计行数:
- 过滤并打印匹配的行:
- 按范围打印:
- 格式化输出:
虽然 Python 等脚本语言在复杂任务中更具优势,但使用 Shell 脚本处理简单的文件操作和文本处理依然十分高效。本文介绍的这些工具都是非常基础且实用的命令,希望能帮助你快速提升在 Linux 下的操作效率。
-
提升效率必备!学习awk命令,轻松搞定数据
-
高效传输秘籍,揭秘Rsync和SCP的优劣,助你做出明智选择!
-
当你拥有一台云服务器,你最想做的事情是啥?
-
IP地址乱成一团?用Shell一键搞定!
-
Nginx日志分析:编写Shell脚本进行全面日志统计
-
如何用find命令按文件大小快速查找并美化输出显示
-
不再担心数据丢失:用rsync打造你的自动化备份解决方案