您的位置:首页 > 运维架构 > Linux

Linux 字符截取命令 cut printf awk sed

2017-08-01 10:58 281 查看
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' 文件名

   
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: