常见的Linux命令--字符串截取命令
一、cut命令
cut: 按照字表符或者指定分隔符截取字符串
-d 指定分隔符
-f 指定截取的列,多个列之间用“,”分隔
示例:cut -d ":" -f1,3 /etc/passwd
二、print和printf命令
命令格式:printf "输出格式输出类型" “输出内容”
printf: 输出指定的内容,通常与awk命令连用
%ns 表示输出字符串类型的个数
%ni 表示输出整数类型的个数
%m.nf 表示输出浮点数类型
print: 与printf一样,但是在输出字符串时会自动换行
示例:printf "%s\t%s\t%s\t\n" 1 2 3
三、awk命令
awk:可以按空格截取字符串
命令格式:awk '{条件1}{动作1}{条件2}{动作2}'
BEGIN 在截取之前处理
END 在截取之后处理
FS 指定分隔符
示例:df -h | grep vda1 | awk '{printf $1 "\t" $5}' |cut -d "%" -f1 # 使用awk统计根分区的使用率
awk 'BEGIN{print "开始统计三班的成绩"}END{print "成绩统计结束"}{print $2 "\t" $5}' student.txt # 统计学生的成绩
cat /etc/passwd | grep /bin/bash | grep -v root | awk 'BEGIN{FS=":"}{print $1 "\t" $5}' # 查找系统中的普通用户
四、sed命令
命令格式:sed [选项] ‘[动作]’
sed: 将其他命令的输出作为输出的流编辑器
-n 只输出sed命令编辑过的信息
-e 多个命令一起操作,多个操作之间用“;”隔开
-i 保存修改后的内容到原文件
动作命令包括
a 在指定行后面追加指定字符串
i 在指定行前面插入指定字符串
d 删除指定行
c 按行替换
s 按字符串替换 格式为:/s/新字符串/旧字符串/g
p 打印行
示例:sed '2p' ./sugar/student.txt # 打印student.txt的第二行
sed '2a hahaha' student.txt # 在student.txt文件的第二行后面追加字符串hahaha
sed '2i hahaha\xixixi' student.txt # 在student.txt文件第二行前插入hahaha和xixixi
sed ‘2,4d’ student.txt # 删除student.txt文件的第二行到第四行
sed '2c no such man' student.txt # 将student.txt的第二行替换为no such man
sed '2s/HubuSugar/igoodful/g' student.txt # 将student.txt文件的HubuSugar替换成igoodful
sed -e '2d;3c no such man' student.txt # 删除student.txt文件的第二行,同时将第三行替换为no such man