shell-cut,sed,awk

一、cut:强大文本编辑处理工具,可以将文本按列进行划分的文本处理 

1、cut切割提取列
     cut 文件或数据 -d 分隔符切割  -f 提取第x列
2、cut切割提取字符
     cut 文件或数据 -c  提取字符范围(n-,n-m,-n,n1,n2..)
3、cut切割提取字节
     cut 文件或数据 -b 提取字节范围
     -nb 取消多字节字符分割( echo "java编程" | cut  -b -5 才可以把""正常显示)

示例
1、提取文件中的第一列数据
  cut cut.txt -d " " -f 1
2、提取文件中每行前三个字符
  cut cut.txt -c -3
3、提起字符串前五个字节
   echo "java编程" | cut -b -5
   echo "java编程" | cut -nb -5
4、切割提取bash进程的pid号
   ps -aux | grep 'bash' | head -n 1 | cut -d  " " -f 8


      
二、sed:可以对文本文件的每一行数据匹配查询之后进行增、删、改、查等操作,支持按行、按字段、按正则匹配文本内容,灵活方便,特别适合于大文件的编辑.

示例
1、向文件中添加数据

    1.1 指定行号的前或后面添加数据
    sed '3ahello' sed.txt  3,代表第三行 a,代表在后面添加
    sed '3ihello'  sed.txt  3,代表第三行 i,代表在前面添加

    1.2、指定内容前或后面添加数据
    sed '/scwyfy/ihello' sed.txt  在scwyfy前面添加hello
    sed '/scwyfy/ahello' sed.txt  在scwyfy后面添加hello
   
    1.3、最后一行前或后添加数据 
    sed '$ihello' sed.txt  在最后一行前面添加hello
    sed '$ahello' sed.txt  在最后一行后面添加hello

2、删除文件中的数据
    
     1.1 删除第二行的数据
     sed '2d' sed.txt   2,代表第二行 d,删除
    
     1.2 删除第一、四行数据
     sed '1d;4d' sed.txt

     1.3 删除奇数行数据
     sed '1~2d' sed.txt   1,从第一行开始,2,每隔行数
   
     1.4 删除指定范围的多行数据
     sed '1,3d' sed.txt   1,从第一行开始, 3结束行数
     sed '1,3!d' sed.txt  删除从1-3行取反的数据

     1.5 删除最后一行
     sed '$d' sed.txt
    
     1.6 删除匹配scwyfy的行
     sed '/scwyfy/d' sed.txt




    

 

posted @ 2024-05-13 23:07  scwyfy  阅读(11)  评论(0编辑  收藏  举报