Linux命令:wc, grep, 正则, cut, paste, tr
来自实验楼的实验报告:
第六次实验:
-
wc [选项] [文件] :word count 统计文件内容信息
-c 统计字节数
-l 统计行数
-m 统计字符数,每行结束换行符算一个字符,空格也算一个
-w 统计字数(由空格 跳格 换行界定的字符串)
-L 返回最长行的长度
例如:wc -l lee.txt 即 cat lee.txt | wc -l 扩展到 ls /bin | wc -l
-
grep [选项] pattern [file] :强大,找到文中的匹配文本,可用正则表达式与通配符
-c 计算找到‘搜索字符串’(即 pattern) 的次数
-i 忽略大小写
-n 输出行号
-v 反向选择,打印不匹配的行
-r 递归搜索
--color=auto 将找到的关键词加上颜色显示
例1:grep -nv "s" lee.txt :将lee.txt中不含s的行输出 且显示行号
例2:grep -r "main()" . :在当前目录下递归搜索文件中包含main()的文件,
-
正则 ^ $ . [ ] { } - ? * + ( ) | \
第七次实验:
-
cut [选项] [文件名] :将文本按列进行切分的小工具,可指定分割定界符。
-b 字节为单位分割
-c 以字符为单位分割
-d 自定义分隔符,默认制表符
-f 自定义字段
--complement 抽取整个文本行,处理那些由-c和-f选项指定的文本
例:cut -f 1,3 -d ' ' stu.txt 从stu.txt中取出第一列和第三列(1-3为第一到第三列)
cut -f 1 -d ' ' stu.txt --complement 取出除了第一列的其他列
-
paste [选项] [文件名] :与cut相反,添加到文件,而不是抽取文本列。它通过读取多个文件,然后把每个文件中的字段整合成单个文本流,输入到标准输出
-s 将每个文件合并成行而不是按行粘贴
-d 自定义分隔符,默认制表符
例:paste stu1.txt str2.txt -d ':' 将两个文件内容按列拼接,指定分隔符为“:”
-
tr [选项] SET1 SET2 :用来更改字符。可以看做一种基于字符的查找和替换操作。translate
-d 删除匹配SET1的内容
例:echo 'THIS IS 123 SHIYANLOU!' | tr 'A-Z' 'a-z' | tr -d '0-9' 将字符大写转小写,再将数字删除