一、字符截取命令 一、字符截取命令 1、cut 字段截取命令 [root@localhost ~]# cut [选项] 文件名 选项: -f 列号: 提取第几列 -d 分隔符: 按照指定分隔符分割列(默认分隔符是制表符Tab键)
cut 命令的局限性 df -h | cut -d ” ” -f 1,3 # df 命令,查看分区的使用状况
因为文件内容中的分隔符是空格,cut命令是能截取第一行,他第三列是空格,不是数据。 2、printf 命令 printf ‘输出类型 输出格式’ 输出内容 输出类型: %ns: 输出字符串。n 是数字,指代输出几个字符 %ni: 输出整数。n 是数字,指代输出几个数字 %m.nf: 输出浮点数。m和n是数字,指代输出的整数位和小数位数 如%8.2f 代表共输出8位数,其中2位是小数,6位是整数。 输出格式: a : 输出警告声音 b : 输出退格键,也就是Backspace键 f : 清除屏幕 : 换行 : 回车,也就是Enter键 : 水平输出退格键,也就是Tab键 v : 水平输出退格键,也就是Tab键 [root@localhost ~]# printf %s 1 2 3 4 5 6 [root@localhost ~]# printf %s %s %s 1 2 3 4 5 6 [root@localhost ~]# printf ‘%s %s %s ‘ 1 2 3 4 5 6 [root@localhost ~]# printf ‘%s %s %s ’ 1 2 3 4 5 6
注:单引号不能省略。 [root@localhost ~]# printf ‘%s’ $(cat student.txt) # 不调整输出格式 [root@localhost ~]# printf ‘%s %s %s %s ’ $(cat student.txt) # 调整格式输出
注:printf 不支持数据流 3、awk 命令 [root@localhost ~]# awk ‘ 条件1{动作1} 条件2{动作2}……’ 文件名 条件(Patterm): 一般使用关系表达式作为条件 x > 10 判断变量 x 是否大于10 x >= 10 大于等于 x <= 10 大于等于 动作(Action):(高级功能,暂时不学) 格式化输出 流程控制语句 [root@localhost ~]# awk ‘ {printf $2 ” ” $4 ” ” }’ student.txt
注:有条件就先判断条件再执行动作,没有条件就位每一行都执行同样的动作 print 命令,相当于printf 省略后面的
注:awk 命令,先读取数据,然后再按照条件截取。
BEGIN (条件命令) [root@localhost ~]# awk ‘ BEGIN { print ” This is a transcript ” } {print $2 ” ” $4 ” ” }’ student.txt
注:只要命令执行之前满足 BEGIN 条件,就答应 print ” This is a transcript END(条件命令) [root@localhost ~]# awk ‘ END { print ” end ” } {print $2 ” ” $4 ” ” }’ student.txt
FS内置变量 [root@localhost ~]# cat /etc/passwd | grep “/bin/bash” | awk ‘BEGIN {FS=”:”} {print $1 ” ” $3 ” ”}’
标准用法: ‘BEGIN {FS=”:”} 关系运算符 [root@localhost ~]# cat student.txt | grep -v Name | awk ‘$4 >= 70′ {printf $2 ” ”}’
字符替换命令 sed 命令 vi 只能修改文件,需要人工输入;sed 替换文件里面的数据,适合脚本使用。 sed 是一种几乎包括在所有UNIX平台(包括 Linux)的轻量级编辑器。sed主要是用来将数据进行选取、替换、删除、新增的命令。 [root@localhost ~]# sed [选项] ‘[动作]’ 文件名 选项: -n : 一般sed命令会把所有数据都输出到屏幕,如果加入此选项则只会把经过sed 命令处理的行输出到屏幕。 -e : 允许对输入数据应用多条sed命令编辑 -i : 用sed的修改结果直接修改读取数据的文件,而不是由屏幕输出 动作: a : 追加,在当前行后添加一行或多行 c : 行替换,用 c 后面的字符串替换原数据行 i : 插入,在当前行插入一行或多行。d:删除,删除指定的行 p : 打印输出指定的行 s : 字串替换,用一个字符串替换另一个字符串。格式为 “行范围 s/ 旧字串 / 新字串 /g” (和vim中的替换格式类似)。 行数据操作 [root@localhost ~]# sed ‘2p’ student.txt # 查看文件的第二行 [root@localhost ~]# sed -n ‘2p’ student.txt
[root@localhost ~]# sed ‘2d’ student.txt # 删除第二行的数据,但不修改文件本身
[root@localhost ~]# sed ‘2,4d’ student.txt # 删除第二行到第四行的数据,但不修改文件本身
[root@localhost ~]# sed ‘2a cjj like Linux ‘ student.txt # 在第二行后面追加一行数据
[root@localhost ~]# sed ‘2i cjj like Linux ‘ student.txt # 在第二行前面插入一行数据
[root@localhost ~]# sed ‘2c cjj like Linux ‘ student.txt # 数据替换
字符串替换 [root@localhost ~]# sed ‘s/ 旧字符串/新字符串/g 文件名 [root@localhost ~]# sed ‘3s/60/99/g ‘ student.txt # 在第三行中,把60换成99
[root@localhost ~]# sed -i ‘3s/60/99/g ‘ student.txt # 确定修改并保存,直接写入文件
注:3s 代表第三行70,s 代表只有一行有要替换的数据70,g 代表有多个70都要替换 [root@localhost ~]# sed -e ‘s/fengj/ /g ; s/cang/ /g’ sttudent.txt # -e 表示可以同时执行多条命令,同时把“fengj” 和 “cnag” 替换为空。
二、字符处理命令 1、 排序命令 [root@localhost ~]# sort [选项] 文件名 选项: -f : 忽略大小写 -n : 以数值型进行排序,默认使用字符串型排序 -r : 反向排序 -t : 指定分隔符,默认分隔符是制表符 -k “n,m” : 按照指定的字段范围排序。从第n字段开始,m字段结束(默认到行尾) [root@localhost ~]# sort /etc/passwd
注:什么都不指定,按照字母顺序排列 [root@localhost ~]# -r sort /etc/passwd (取反)
[root@localhost ~]# sort -n -t “:” -k “3,3” /etc/passwd # 指定分隔符是“:” 用第三字段开头,第三字段结尾排序,就是只用第三字段排序
注:数字排序加上 -n 否则是按照字符串进行排序 2、统计命令 wc [root@localhost ~]# wc [选项] 文件名 选项: -l : 只统计行数 -w : 只统计单词数 -m : 只统计字符数
2024最新激活全家桶教程,稳定运行到2099年,请移步至置顶文章:https://sigusoft.com/99576.html
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。 文章由激活谷谷主-小谷整理,转载请注明出处:https://sigusoft.com/88033.html