字符截取命令
[root@cloud ~]# vi .bashrc
#配置别名
[root@cloud ~]# grep "/bin/bash"/etc/passwd
root:x:0:0:root:/root:/bin/bash
user1:x:500:500::/home/user1:/bin/bash
user2:x:501:501::/home/user2:/bin/bash
[root@cloud ~]#grep "/bin/bash" /etc/passwd | grep -v "root"
user1:x:500:500::/home/user1:/bin/bash
user2:x:501:501::/home/user2:/bin/bash
并上后面的取反
1.cut字段提取命令
cut [选项] 文件名
选项
–f列号:提取第几列
-d分隔符:按照指定分隔符分隔列
[root@cloud jb]# grep "/bin/bash"/etc/passwd | grep -v "root" | cut -f 1 -d ":"
user1
user2
[root@cloud jb]# cut -f 2,4 student.txt
Name Mark
furong 85
fengj 60
cang 70
要用制表符Tab
[root@cloud jb]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda1 19G 2.5G 15G 15% /
tmpfs 751M 0 751M 0% /dev/shm
/dev/sdb1 4.5G 1.9M 4.3G 1% /data
2.printf命令
printf ‘输出类型输出格式’ 输出内容
输出类型:
%ns:输出字符串。n是数字指点输出几个字符
%ni:输出整数。
%m.nf:输出浮点数。
输出格式:
\a:输出警告声音
\b:输出退格键,也就是Backspace键
\f:清楚屏幕
\n:换行
\r:回车,也就是Enter键
\t:水平输出退格键,也就是Tab键
\v:垂直输出退格键,也就是Tab键
[root@cloud jb]# printf '%s\t%s\t%s\t%s\n'$(cat student.txt)
ID Name gender Mark
1 furong F 85
2 fengj F 60
3 cang F 70
在awk命令的输出中支持print和printf命令
print:会在每个输出之后自动加入一个换行符
printf:是标准格式输出命令,并不会自动加入换行符
3.awk命令
awk ‘条件{动作1}条件{动作2}..’ 文件名
条件(pattern)
一般使用关系表达式作为条件
x>10判断变量x是否大于10
x>=10
x<=10
动作(Action)
格式化输出
流程控制语句
[root@cloud jb]# awk '{printf $2"\t" $4 "\n"}' student.txt
Name Mark
furong 85
fengj 60
cang 70
[root@cloud jb]# df -h | grep"/dev/sda" | awk '{print $5}' | cut -d "%" -f 1
15
[root@cloud jb]# awk 'END {print"test"}''{print $2 "\t" $4}' student.txt
Name Mark
furong 85
fengj 60
cang 70
test
[root@cloud jb]# cat /etc/passwd |grep/bin/bash | awk '{FS=":"}{print $1 "\t" $3}'
root:x:0:0:root:/root:/bin/bash
user1 500
user2 501
[root@cloud jb]# cat student.txt | grep -vName | awk '$4>=70{print $2}'
furong
cang
4.sed命令
是一种几乎包括所有uinx平台(包括Linux)的轻量级流编辑器。sed主要用来将数据进行选取、替换、删除、新增的命令。
sed [选项] ‘[动作]’ 文件名
选项
-n 一般sed命令会把所有数据都输出到屏幕,如果加入此选择则会把经过sed命令处理的行输出到屏幕
-e 允许对输入数据应用多条sed命令编辑器
-I 用sed的修改结果直接修改读取数据的文件,而不是由屏幕输出
动作
a 追加
c 行替换
I 插入
p 打印
s 子串替换
d 删除
[root@cloud jb]# sed -n '2p' student.txt
1 furong F 85
[root@cloud jb]# sed '2d' student.txt
ID Name gender Mark
2 fengj F 60
3 cang F 70
[root@cloud jb]# sed '2,4d' student.txt
ID Name gender Mark
[root@cloud jb]# sed '2a piaoliang jiushirnx' student.txt
ID Name gender Mark
1 furong F 85
piaoliang jiushi rnx
2 fengj F 60
3 cang F 70
[root@cloud jb]# sed '4c cangls bujige'student.txt
ID Name gender Mark
1 furong F 85
2 fengj F 60
cangls bujige
[root@cloud jb]# sed '4s/70/100/g'student.txt
ID Name gender Mark
1 furong F 85
2 fengj F 60
3 cang F 100
[root@cloud jb]# sed -i '4s/70/100/g'student.txt
[root@cloud jb]# cat student.txt
ID Name gender Mark
1 furong F 85
2 fengj F 60
3 cang F 100
[root@cloud jb]# sed -e's/furong//g;s/fengj//g' student.txt
ID Name gender Mark
1 F 85
2 F 60
3 cang F 100
字符处理命令
sort命令
排序命令
sort [选项] 文件名
-f:忽略大小写
-n:以数值型进行排序,默认使用字符串型排序
-r:反向排序
-t: 指定分隔符,默认分隔符是制表符
-k n[,m]按照指定的字段范围排序。
[root@cloud jb]# sort -t ":" -k"3,3" /etc/passwd
wc统计命令
wc [选项] 文件名
选项
-l 只统计行数
-w 只统计单词数
-m 只统计字符数
[root@cloud jb]# wc /etc/passwd
21 27932 /etc/passwd
[root@cloud jb]# wc -l /etc/passwd
21 /etc/passwd