Shell编程之字符串处理

您所在的位置:网站首页 PS4存档备份还原 Shell编程之字符串处理

Shell编程之字符串处理

#Shell编程之字符串处理| 来源: 网络整理| 查看: 265

image.png

一、通配符

× 匹配任意字符 ? 匹配任意一个字符 [] 匹配中括号中的一个字符

二、正则表达式

image.png 注意:

grep '^[0-9]' test.txt 代表0-9中任意一个字符开头的 中括号之内代表开头

grep '[^0-9]' test.txt 代表不是由数字开头的 中括号之外代表取反

三、字符截取 cut awk

cut -f 1 截取第一列 -f 2,3 截取第二列和第三列 -d ":" 以冒号作为分隔符截取 ,默认是以制表符作为分隔符 printf a. 输出类型: %ns:输出字符串,n代表输出几个字符串 %ni:输出整数,n代表输出几个数字 %m.nf:输出浮点数,m和n指代输出的整数位数和小数位数,如%8.2f代表是一个8位的数,6位整数,2位小数 b. 输出格式:

image.png

printf '%s\t%s\n' 1 2 3 21 21 一行输出两个字符串

awk '条件1{动作1}条件2{动作2}' 文件 awk 'BEGIN{print "print start!!!"}{print $1}' student.txt 打印开始之前加个print start awk 'END{print "print end!!!"}{print $1}' student.txt 末尾打印print end!!! cat /etc/passwd | awk 'BEGIN{FS=":"}{print $1}' 设置分割符,必须加BEGIN,因为是先赋值变量在执行打印的,如果不加begin,第一句的打印就不是以:来作为分割的。 cat student.txt | grep -v id | awk '3>12{print 1}' 加条件判断

四、字符替换 sed

sed 选项 '[动作]' 文件名 选项: -n 只把经过sed处理过的内容才会显示 -e 允许对输入的数据应用多条sed命令 -i 用sed的修改结果直接修改读取数据的文件,而不是屏幕输出 动作: -a 追加,在当前行后面添加一行或多行 -c 行替换,在c后面的字符串替换掉原数据行 -i 插入 -d 删除 -p 打印 -s 字符串替换,用一个字符串替换另一个字符串。格式为“行范围s/旧字符串/新字符串/g” 加/g是将范围内的字符串全部替换 示例:sed -n '2p' student.txt 只打印第二行 sed -i '5s/22/30/g' student.txt 把第5行的22替换成30 sed -e 's/xiaowang/wang/g;s/xiaoming/ming/g' student.txt 一次执行多个替换语句

番外:提取数字

echo "2014年7月21日" | tr -cd "[0-9]" 这样就可以提取出2014721

五、排序

sort [选项] 文件名 -f 忽略大小写 -n 以数值型进行排序 -r 反向排序 -t 指定分隔符 -k n[,m] 按照指定的字段范围排序,从n字段开始,m字段结尾 示例:sort -t ":" -k "3,3" /etc/passwd 用:把一行数据分割开之后的第三个字段来进行排序

六、统计命令

wc [选项名] 文件 -l 统计行数 -w 统计单词数 -m 统计字符数

开启掘金成长之旅!这是我参与「掘金日新计划 · 2 月更文挑战」的第 6 天,点击查看活动详情



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3