文章目录
1. cut [选项] 文件名
-f 列号 提取到第几列
-d 分隔符 按照指定分隔符分割列
cut -f 2 student.txt 第四列
cut -f 2,4 student.txt 第2,4列
cut -d “:” -f 1,3 /etc/passwd 第1,3列 以:为分隔符
2. printf ’ 输出类型输出格式 输出内容 ’
输出类型:
- %ns : 输出字符串。n 是数字指代输出几个字符,不写n的话全部输出
- %ni : 输出整数。n 是数字指代输出几个数字
- %m .nf :输出浮点数,m 输出位数,n 输出小数位数
输出格式:
\a :输出警告声音
\b :输出退格键
\f :清除屏幕
\n :换行
\r :回车
\t :水平输出退格键
\v :垂直输出退格键
eg
printf ‘%s’ $(cat student.txt)
3. awk ‘条件1{动作1} 条件2{动作2}…’ 文件名 #默认使用制表符或者空格作为分隔符
条件(pattern):
- 一般使用关系表达式作为条件
- x > 10
动作: - 格式化输出
- 流程控制语句
eg
awk ‘{printf $2 “\t” $4 “\n”}’ stedent.txt #输出第2,4列
df -h | awk ‘{printf $1 “\t” $3 “\n”}’
awk ‘EDGIN{printf $2 “\t” $4 “\n”}’ stedent.txt #输出第2,4列
awk ‘END{printf $2 “\t” $4 “\n”}’ stedent.txt #输出第2,4列
awk ‘BEGIN{FS=":"} {printf $2 “\t” $4 “\n”}’
cat student.txt | grep -v Name | awk ‘$4>70{print $2}’ #打印成绩大于70的成绩
4. sed [选项] ‘[动作]’ 文件名
选项:
-n :一般sed 命令会把所有数据都输出,如果加入此选择则只会把经过sed命令处理的行输出
-e :允许对输入数据应用多条sed命令编辑
-i :用sed的修改结果直接修改读取数据的文件,而不是由屏幕输出
动作:
-a:追加,在当前行后添加一行或多行
-c:行替换,用c后面再字符串替换原始数据行
-i :插入,在当前行插入一行或者多行,
-d:删除,删除指定行
-p:打印
-s:字符替换,格式为 “行范围s/旧字符/新字符/g”
eg:
sed -n ‘2p’ student.txt #打印第二行
sed ‘2,4d’ student.txt #删除第二行到第四行,但不修改文件本身
sed ‘2a hello’ studdent.txt #在第二行追加hello
sed ‘2i hello’ studdent.txt #在第二行前插入hello
sed ‘4c hello’ student.txt #将第四行替换为hello
sed ‘3s/60/99/g’ student.txt #将第三行中的60替换为99
sed -i ‘3s/60/99/g’ student.txt #将结果直接写入文件
sed -e ‘s/aaa/hello/g ; s/ccc/hello/g’ student.txt #替换多个
5. sort [选项] 文件名
选项:
-f:忽略大小写
-n:以数值型进行排序,默认使用字符串型
-r:反向排序
-t:指定分隔符,默认分隔符是制表符
-k n[,m]: 按照指定的字段范围排序,从第n字段开始,m字段结束,默认到行尾
eg
sort /etc/passwd
sort -r /etc/passwd
sort -t “:” -k “3,3” /etc/passwd #指定分隔符,用第三字段开头,第三字段结尾排序
sort -n -t “:” -k “3,3” /etc/passwd
6. wc [选项] 文件名 #默认统计行数,单词数和字符数
选项:
-l:只统计行数
-w:只统计单词数
-m:只统计字符数