本书未发布

shell入门

未匹配的标注

shell 常用命令

文件查找名利

命令 使用场景 优缺点
find 查找某一类文件 功能强大,速度慢
locate 查找单个文件 功能单一,速度快
whereis 查找程序的可执行文件、帮助文档等 不常用
which 中查找程序的可执行文件 常用于查找程序的绝对路径

文本处理

  • grep

语法格式
grep [option] [pattern] [file1,file2] //文件中包含的字符串 option 如:

选项 含义
-v 不显示匹配行的信息
-i 搜索时忽略大小写
-n 显示行号

例子:查找包含hello字符的行 grep -v hello file1

  • sed

sed,流编辑器。对标准输出或文件逐行进行处理。也就是对文件的增删改查。
语法:
第一种: stdot|sed [option] “pattern command”
第二种:sed [option] “pattern command” file
option:

选项 含义
-n 只打印模式匹配行
-e 直接在命令行进行sed编辑,默认选项
-f 编辑动作保存在文件中,指定文件执行
-r 支持扩展正则表达式
-i 直接修改文件内容

pattern:

匹配模式 含义
10command 匹配到第10行
10,20command 匹配从10行开始,20行结束
10,+5command 10行开始,16行结束
/pattern1/command 匹配到pattern的行
/p1/,/p2/command 匹配从p1开始 p2 结束

command :

类别 编辑命令 含义
查询 p 打印
增加 a 行后追加
i 行前追加
r 外部文件读入,行后追加
w 匹配行写入外部文件
删除 d 删除行
修改 s/old/new 将行内第一个old 替换为new
修改 s/old/new/g 将行内全部的old 替换为new
修改 s/old/new/2g 将行内前两个old 替换为new
修改 s/old/new/ig 将行内所有old 替换为new,忽略大小写
  • awk

awk可以对复杂文本进行复杂的处理,对输出结果进行处理,生成报告,如数据分析等

awk 的工作模式:
语法:
awk ‘BEGIN{}pattern{commands}END{}’file_name
standrd output | awk ‘BEGIN{}pattern{commands}END{}’file_name
语法解析

语法格式 解析
BEGIN 正式处理之前执行
pattern 匹配模式
{commands} 处理命令,可以多行
END 处理完成之后执行

awk 的内置变量

内置变量 含义
$0 整行内容
$1-$n 当前行的第1-n个字段
NF(number filed 的缩写) 当前行的字段个数
NR (number row) 当前行号,从 1 开始
FNR (file number row) 多文件处理时,每个文件行号单独计数,都是从0开始
FS (file separator) 输入字段分割符,默认是一空格或tab键分割
RS 输入行分割符,不指定回车换行符
OFS 输出字段分割符

例子:

awk '{print $0}END{}' /etc/passwd 输出整个文件内容
awk 'BEGIN{FS==":"}{print $0}END{}' /etc/passwd //以字符 :进行分割 输出第一列
awk '{print $1}END{}' /etc/passwd //输出第一列,默认是空格符进行分割
awk '{print NF}END{}' list  //输出每行的字段数

awk 的两种匹配模式
第一种为正则表达式(RegExp),第二种:关系运算匹配(>、< 、= 等等)

~

本文章首发在 LearnKu.com 网站上。

上一篇 下一篇
Luson
《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
讨论数量: 0
发起讨论 只看当前版本


暂无话题~