爱因斯坦耸耸肩

Linux:shell基础(八)

字符提取命令:

  cut 字段提取命令

  printf 命令

  awk字段提取命令

  sed 字段提取命令

 

1、cut命令

  cut [选项] 文件名

  选项:

    -f 列号:  提取第几列

    -d 分隔符:  按照指定分隔符分割。(默认分隔符为制表符(Tab键))

 

  eg: cut -d ":" -f 2 test.txt  代表,分隔符设置为":",取出第2列。

  

  (cut 命令不能处理分隔符是空格的情况,所以就需要接下来的awk命令)

 

2、printf 命令

  printf '输出类型输出格式' 输出内容

  输出类型:

  %ns:  输出字符串,n是数字,代表输出几个字符

  %ni:  输出整数,n是数字,代表输出几个字符

  %m.nf:输出浮点数。m和n是数字,代表输出的整数位数和小数位数。

      eg:%8.2f 代表:输出8位数。其中2位是小数,6位是整数。

 

  输出格式:

  \a:输出警告声音

  \b:输出退格键,也就是Backspace键

  \f:清楚屏幕

  \n:换行

  \r:回车,也就是Enter键

  \t:水平输出退格键,也就是Tab键

  \v:垂直输出退格键,也就是Tab键

在awk命令的输出中支持print和printf命令

  print:print会在每个输出之后,自动加入一个换行符。(Linux默认没有print命令)

  printf:printf是标准格式输出命令,并不会自动加入换行符,如果需要换行,需要手动加入换行符。

 

3、awk 命令

  awk ‘条件1{动作1} 条件2{动作2} ....’ 文件名

  条件:

    一般使用关系表达式作为条件: >, >=, < ,<=

  动作:

    格式化输出

    流程控制语句

4、sed命令

  sed [选项] '[动作]' 文件名

  选项:

    -n :把经过sed处理的行输出到屏幕。(一般sed命令会把所有数据输出到屏幕)

 

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

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

  动作:

    a \ :追加。在当前行后添加一行或多行。

      添加多行时,除最后一行外,每行结尾需要用“\”代表数据结束。

    c \ :行替换。用c后面的字符串替换原数据行。

      替换多行时,除最后一行外,每行结尾需要用“\”代表数据结束。

    i \ :插入。在当前行前插入一行或多行。

      插入多行时,除最后一行外,每行结尾需要用“\”代表数据结束。

    d \ :删除。删除指定行。

    p \ :打印。打印指定行。

    s \ :字符串替换,用一个字符串替换另外一个字符串。

      格式为:“行范围s/旧字符串/新字符串/g” (和vim中的替换很像)

 

  sed '2p' ./test.txt  输出第二行。会导致所有内容都输出,其中第二行输出两遍。

  sed -n '2p' ./test.txt 输出第二行。只输出第二行。

  sed '2,4d' ./test.txt 删除第二行到第四行,但是并不修改文件。

  sed '2a hello' ./test.txt 向第二行后面追加hello,并不修改文件。

 

 

  

 

posted on 2019-11-03 22:23  爱因斯坦耸耸肩  阅读(132)  评论(0编辑  收藏  举报

导航