cut 字符提取命令
cut [选项] 文件名
选项:
-f 列号:提取第几列
-d 分隔符:按照指定分隔符分割列,默认是Tab键
grep提取行 cut提取列
printf '输出类型输出格式' 输出内容
输出类型:
%ns:输出字符串。n是数字指代输出几个字符
%ni: 输出整数。n是数字指代输出几个数字
%m.nf:输出浮点数。m和n是数字,指代输出的整数位数和小数位数 如%8.2f代表共输出8位数,其中2位是小数,6位是整数
输出格式:
\a:输出警告声音
\b:输出退格键,也就是Backspace键
\f:清除屏幕
\n:换行
\r:回车,也就是Enter键
\t:水平输出退格键,也就是Tab键
\v:垂直输出退格键,也就是Tab键
awk '条件1{动作1}条件2{动作2}...' 文件名
条件(Pattern):
一般使用关系表达式作为条件
x > 10判断变量 x是否大于10
x >= 10大于等于
x <= 10小于等于
动作(Action):
格式化输出
流程控制语句
cut不支持管道符 | 数据流,awk支持管道符 | 数据流
FS内置变量
awk 'BEGIN {FS=":"}{printf $1 "\t" #3 "\n"}' 以冒号做分隔符
sed 准确的说是字符替换命令
sed [选项] '[动作]' 文件名
选项:
-n:一般sed命令会把所有数据都输出到屏幕,如果加入此选择则只会把经过sed命令处理的行输出到屏幕。
-e:允许对输入数据应用多条sed命令编辑
-i:用sed的修改结果直接修改读取数据的文件,而不是由屏幕输出,如果不加-i,所有的操作都不会影响原始文件的内容
动作:
a:追加,在当前行后添加一行或多行
c:行替换,用c后面的字符串替换原数据行
i:插入,在当前行前插入一行或多行。d:删除,删除指定的行
d:删除,删除指定的行
p:打印,输出指定的行。
s:字串替换,用一个字符串替换另外一个字符串。格式为"行范围s/旧字串/新字串/g" (和vim中的替换格式类似)
#sed 's/旧字串/新字串/g' 文件名