5.文本处理
•cut:显示切割的行数据
–f:选择显示的列
–s:不显示没有分隔符的行
–d:自定义分隔符
例:以“ ”作分割显示第1~3 m列: cut -s -d' ' -f1-3 grep.txt
•sort:排序文件的行
–n:按数值排序
–r:倒序
–t:自定义分隔符
–k:选择排序列
–u:合并相同行
–f:忽略大小写
例:以空格分割,第二行数字排序,倒序:sort -t' ' -k2 -nr sort.txt
•wc:做统计
例计算多少行:wc -l sort.txt
ls -l /etc | wc -l
•sed:行编辑器
–sed [options] 'AddressCommand' file ...
– -n: 静默模式,不再默认显示模式空间中的内容
– -i: 直接修改原文件
– -e SCRIPT -e SCRIPT:可以同时执行多个脚本
– -f /PATH/TO/SED_SCRIPT
– -r: 表示使用扩展正则表达式
行编辑器Command
–d: 删除符合条件的行;
–p: 显示符合条件的行;
–a \string: 在指定的行后面追加新行,内容为string
– \n:可以用于换行
–i \string: 在指定的行前面添加新行,内容为string
–r FILE: 将指定的文件的内容添加至符合条件的行处
–w FILE: 将地址指定的范围内的行另存至指定的文件中;
–s/pattern/string/修饰符: 查找并替换,默认只替换每行中第一次被模式匹配到的字符串
•g: 行内全局替换
•i: 忽略字符大小写
•s///: s###, s@@@
• \(\), \1, \2
例:1.在第一行下追加一行“hello,world”:sed -i "1a\hello,world" sort.txt
2..删去hello,world:sed “2d” sort.txt or sed "/hello/d" sort.txt
3.显示带数字的行: sed -n "/[0-9]/p" sort.txt
4.查找并替换(扩大查找的范围已达到精确替换):sed "s/id:[0-6]:initdefault:/id:5:initdefault:/"
inittab or sed "s/\(id:\)[0-6]\(:initdefault:\)/\15\2/" inittab
•行编辑器Address
–可以没有
–给定范围
–查找指定行/str/
•awk
–awk是一个强大的文本分析工具。
–相对于grep的查找,sed的编辑,awk在其对数据分析并生成报告时,显得尤为强大。
–简单来说awk就是把文件逐行的读入,(空格,制表符)为默认分隔符将每行切片,切开的部分再进行各种分析处理。
格式:•awk -F '{pattern + action}' {filenames}
–支持自定义分隔符
–支持正则表达式匹配
–支持自定义变量,数组 a[1] a[tom] map(key)
–支持内置变量
•ARGC 命令行参数个数
•ARGV 命令行参数排列
•ENVIRON 支持队列中系统环境变量的使用
•FILENAME awk