1、shell编程之字符截取命令
cut 描述:显示行中的指定部分【即截取符合条件的列】,删除文件中指定字段 该命令对应grep【截取符合条件的行】 常用选项 -d 指定字段的分隔符,默认的字段分隔符为“TAB” -f 选择指定字段的内容
printf 描述:格式化和打印数据 多配合awk使用 printf '输出类型输出格式' 输出内容 输出类型: %ns 输出字符串,n代表输出几个字符串 %ni 输出整数 %m.nf 输出浮点数,m为总位数,n为小数点后几位 这里需要引入print命令,实际上在linux中,系统是不识别print这个命令的,但是在awk中可以被识别, 在awk中,printf在输出内容的末尾不加换行符,而print会加上换行符,可参考下图差别
awk 描述:awk是一种编程语言,用于在linux/unix下对文本和数据进行处理 语法格式: awk [options] 'script' var=value file(s) awk [options] -f scriptfile var=value file(s) 中文表达: awk '条件一{动作一}条件二{动作二}' 文件名 条件(pattern) 一般使用关系表达式作为条件 x>10 判断变量x是否大于10 x>=10 大于等于 动作(action) 格式化输出 (printf) 流程控制语句 举例: awk 'BEGIN{printf "成绩如下:" "\n"} {printf $2 "\t" $4 "\n"}' student.txt FS 手动定义分隔符 awk 'BEGIN{FS=":"} {printf $2 "\t" $4 "\n"}' /etc/passwd
sed 描述:轻量级流编辑器,用来将数据进行选取、替换、删除、新增的命令 对比vi , vi只能修改文件;sed不光可以修改文件,还可以从管道符接受内容并进行操作 语法格式: sed [选项] '[动作]' 文件名 常用选项: -n 一般sed命令会把所有数据都输出到屏幕,如果加入此选择,则会把经过sed命令 处理的行输出到屏幕 -e 允许对输入数据应用多条sed命令编辑 -i 用sed修改结果直接修改读取数据的原始文件,而不是由屏幕输出 动作: sed 's/旧子串/新子串/g' 文件名 举例 sed '3s/99/33/g' student.txt 将第三行的99替换为33