Shell编程之字符截取命令

AWK命令

awk ‘条件1(动作1)条件2(动作2)...’ 文件名

条件(pattern)
一般使用关系表达式作为条件
x>10判断x是否大于10
x>=10大于等于
x<=10小于等于

动作(Action)
-格式化输出
-流程控制语句

awk使用示例:
awk ‘{printf $1 "\t" $2 "\n"}‘

awk ‘BEGIN{printf "test"}{printf $1}‘ //在输出语句前输出指定字符串

awk ‘END{printf "test"}{printf $1}‘//在输出语句后输出指定字符串

FS内置变量
cat /etc/passwd | grep "/bin/bash" | awk ‘BEGIN{FS=":"}{printf $1 "\t" $3 "\n"}‘
//BEGIN在读取数据前先指定分隔符
FS内置变量设定分隔符

关系运算符
cat /etc/passwd | awk ‘BEGIN{FS=":"}$3<300{printf $1 "\t" $3 "\n"}‘

awk常用的内置变量
ARGC               命令行参数个数
ARGV               命令行参数排列
ENVIRON            支持队列中系统环境变量的使用
FILENAME           awk浏览的文件名
FNR                浏览文件的记录数
FS                 设置输入域分隔符,等价于命令行 -F选项
NF                 浏览记录的域的个数
NR                 已读的记录数
OFS                输出域分隔符
ORS                输出记录分隔符
RS                 控制记录分隔符

CUT命令

cut字段提取命令
cut[选项] 文件名
选项:
-f 列号:提取第几列
-d 分隔符:按照指定分隔符分割列

df  -h| cut -f 1(无法提取列)
cut命令适用比较规律的分割字段,如制表符

实际命令练习,备份创建过的用户
grep "/bin/bash" /etc/passwd | grep -v "root" | cut -f 1 -d ":" user.log

SED命令

sed [选项]  ‘[动作]‘ 文件名
选项:
-n:一般sed命令会把所有数据都输出到屏幕,如果加入此选择,则只会把经过sed命令处理过的行输出到屏幕

-e:允许对输入数据应用多条sed命令编辑

-i:用sed命令的修改结果直接修改读取数据的文件,而不是由屏幕输出

动作:
-a:追加,在当前行后添加一行或多行
-c:行替换,用c后面的字符串替换原数据行
-i:插入,在当前行前插入一行或多行,d:删除指定行
-p:打印,输出指定的行
-s:字串替换,用一个字符串替换另外一个字符串。格式为“行范围s/旧字串/新字串/g"(和vim中的替换格式类似)// sed ‘5s/mbb/mb/g‘ user.log

printf命令(输出命令)

printf命令(格式化输出命令)

printf ‘输出类型输出格式’ 输出内容

输出类型:
—%ns:输出字符串。n是数字指代输出几个字符
—%ni:输出整数。n是数字指代输出几个数字
—%m.nf:输出浮点数,m和n是数字,指代输出的整数位和小数位。如%8.2f代表共输出8位数,其中2位数是小数,6位是整数。

时间: 2024-08-10 17:39:16

Shell编程之字符截取命令的相关文章

Shell编程 之 字符截取命令

1. 字段(列)提取命令:cut  [选项]  文件名 选项:  - f  列号(提取第几列)   - d  分隔符(按照指定分隔符分割列) [[email protected] sh]# cat student.txt ID Name Gender Mark 1 alex male 11 2 boby male 22 3 cyan male 33 4 dauge male 44 [[email protected] sh]# cut -f 2 student.txt # -f 设置列号 Nam

linux shell编程之字符截取命令cut、awk、printf、sed、sort

cut和awk可以提取列,grep提取行 命令名称:cut -f 提取行,-d 分隔符 缺陷:不能使用空格作为分隔符,tab可以,具体分隔符也可以. 命令名称:printf 命令名称:awk 比cut强大的多. sed命令: sort排序:

第10章 Shell编程(2)_字符截取命令

2. 字符截取命令 2.1 cut字段提取命令(grep提取行,cut提取列) (1)cut命令:#cut [选项] 文件名 选项: -f 列号:提取第几列: -d 分隔符:按照指定分隔符分割列,默认是制表符分隔. (2)应用举例 //测试文件(student.txt) ID Name gender PHP Linux MySQL Average 1 ZS M 82 95 86 87.66 2 LS F 74 96 87 85.66 3 WW M 99 83 93 91.66 ①#cut –f

Linux Shell编程 sort、wc命令

sort命令:字符串排序 sort 命令可以依据不同的数据类型来进行排序.sort 将文件的每一行作为一个单位,相互比较.比较原则是从首字符向后,依次按 ASCII 码值进行比较,最后将它们按升序输出. sort 命令格式如下: [[email protected] ~]# sort [选项] 文件名 选项: -f:忽略大小写: -b:忽略每行前面的空白部分: -n:以数值型进行排序,默认使用字符串排序: -r:反向排序: -u:删除重复行.就是 uniq 命令: -t:指定分隔符,默认分隔符是

Linux Shell编程 - 字符截取命令

01.字段提取命令 cut  =>   cut [选项] 文件名 -f 列号: 提取第几列 -d 分隔符:按照指定分割符分割列 例如:cut  -f  2,4(列号:,逗号可以多行提取)  student.txt cut  -d “:” -f 1,3 /etc/passwd 02.格式化输出命令 printf 命令  => printf  ‘输出类型输出格式’  输出内容 输出类型: %ns:输出字符串.n 是数字指代输出几个字符 %ni:输出整数.n 是数字指代输出几个数字 %m.nf:输出

[Shell]字符截取命令:cut, printf, awk, sed

------------------------------------------------------------------------------------------- [cut命令] cut [选项] 文件 -f 列号        ( --field 提取第几列 ) -d 分隔符    ( --delimiter 按照指定分隔符分割列 ) vi user.txt ( 行间分隔符为制表符Tab,cut的默认分割符是制表符 ) 提取系统的用户名和uid: cut -d ":&quo

Shell 字符截取命令 awk

awk命令# awk '条件1{动作1} 条件2{动作2}….' 文件名一般使用关系表达式作为条件动作:1.格式化输出 2.流程控制语句 处理cut命令无法截取空格的列 例子:截取出磁盘使用率 df -h | grep "sda1" | awk 'BEGIN{print "this is sda1 hard use persent:"} {print $5}' | cut -f 1 -d "%" BEGIN关键字 a.在所有动作处理之前执行,可在

Shell 字符截取命令 Cut

1.Cut 命令 # cut [选项] 文件名 选项 : -f 列号 提取第几列   -d 分隔符,按照指定分隔符分割列 2.例子 cut -f 1,4 -d ":" /etc/password 表示以":"作为分隔符 提取第一列和第四列的数据 3.提取Linux下所有普通用户的用户名 cat /etc/passwd | grep "/bin/bash" | cut -f 1 -d ":" | grep -v root gre

shell编程中的find命令

find命令的完整语法格式如下所示: find  [path]  [options]  [tests]  [actions] path path部分很容易理解:既可以使用绝对路径,如/bin,也可以使用相对路径,如 . .如果需要,也可以指定多个路径,如 find /var  /home. options find命令有许多选项可用,下表列出几个最常用的选项. 选项 含义 -depth        在查看目录本身之前先搜索目录的内容 -follow 跟随符号链接 -maxdepths N