Linux字符管理命令

1、grep 通过正则表达式提取带有关键字的行
# ll /etc | grep ^d
grep 参数 关键字 文件或目录
参数:
-i ---忽略大小写
-r ---递归 (目录)
-v ---取反
-n ---抓取带有关键字的行并打印行号
-c ---统计带有关键字的行数

-C 数值 ---打印带有关键字的行以及上下各几行
-A 数值 ---打印带有关键字的行以及下面几行
-B 数值 ---打印带有关键字的行以及上面几行

 

2、cut 截取列
-d ---指定分隔符
-f ---指定截取位数
# cut -d " " -f 3 cut.cmd
# cut -d " " -f 1,3 cut.cmd
# cut -d ":" -f 1 /etc/passwd
或者
# cat /etc/passwd | cut -d ":" -f 1

 

3、wc ---统计命令
-l ---行数
-c ---字节数
-w ---单词数
# ll /etc | grep ^d | wc -l ---统计/etc下子目录的个数

 

4、tr ---大小写的转换
# test=abcdefg ---在系统中声明一个变量
# echo $test ---提取变量值
# echo $test | tr a-z A-Z

 

5、tac 文件名 ---查看文本文件,将内容倒置显示

Linux字符管理命令
6、tee :将标准输入的数据,输出到文件中
# echo $HOME | tee home.txt ---覆盖原文件内容
# who | tee -a home.txt ---追加

 

7、sed 流编辑器
-i ---将修改过的内容直接重定向到原文件
-n ---改变默认显示格式,只输出进过sed处理的行
-e ---多点编辑

删除
# sed 3d 文件名 ---删除文件中第三行
# sed 1,3d 文件名 ---删除1-3行
# sed '3,$d' 文件名 ---从第三行删除到文件尾
# sed '/ftp/d' 文件名 ---删除带有关键字的行
检索带有关键字的行
# sed -n ‘/ftp/p’ 文件名

替换
# sed -n ‘s/date/data/pg’ 文件名 ---行内全面替换date为data

删除1-3行后打印带有关键字ftp的行
# sed -e 1,3d -e '/ftp/p' 文件名

8、awk 通过正则表达式,提取所需的行和列的信息
-F ---指定分隔符
(1)提取行
①提取文件中指定行
# awk NR==3 文件名 ---提取文件中第三行

#获取最后一列

awk -F ',' '{print $NF}'

#获取倒数第二列

awk -F ',' '{print $(NF-1)}'

②提取文件中带有关键字的行
# awk '/ftp/' 文件名 ---提取带有关键字ftp的行
(2)提取列
①分隔符为空格
# df -h | awk '{print $5}'
# awk '{print $1,$3}' 文件名 ---提取文件中第一列和第三列

②特殊符号作为分隔符的
# cat /etc/passwd | awk -F ":" '{print $1}'

---提取所有的用户名

9、sort 排序
sort 文件名 ---按照首字母进行正序排序,将所有内容当做字符处理
参数
-n ---按数值排序
-r ---逆序排序
-t ---指定分隔符
-k ---指定排序列

按照/etc/passwd文件第三列数值从大到小排序
# sort -rn -t ":" -k 3 /etc/passwd
对文件系统系统的使用率逆序排序
# df -h | tail -n +2 | sort -rn -k 5

上一篇:linux 文件替换 sed 以及awk使用


下一篇:23 个非常实用的 Shell 拿来就用脚本实例