• 主页
  • 分类
  • 归档
所有文章 友链 关于我

  • 主页
  • 分类
  • 归档

6- shell 文本处理工具

2024-08-31

6- shell 文本处理工具

6.1 cut

  • 将文件拆分成一个表格,裁剪出指定的区域
1
cut [-f -d -c] 文件名
参数 解释
-f 截取第几列
-d 分隔符,默认\t(按照分隔符将文件分成很多列)
-c 按字符提取
1
2
3
4
5
6
7
8
9
10
echo "hello" | cut -c 1-3 #提取第1到第3个字符

echo -e '你好 hello\n北 上\n京 海' > cut.txt
cut -d " " -f 1 cut.txt
cut -d " " -f 2,3 cut.txt
cut -d " " -f 2- cut.txt

cat /etc/passwd | grep bash
cat /etc/passwd | grep bash$ | cut -d ":" -f 1,6,7
ifconfig | grep 'inet ' | cut -d ' ' -f 10

6.2 awk

  • 将文件逐行读入,默认以空格分隔,切开的部分再进行分析处理。
1
awk [-F -v] '/pattern1/{action1} /pattern2/{action2} ...' 文件名
  • pattern:正则匹配

  • action:对匹配内容执行操作

  • 关键字

    关键字 解释
    BEGIN 处理前做什么操作
    END 处理后做什么操作
  • 内置变量

    变量 说明
    FILENAME 文件名
    NR 当前行号
    NF 当前行有几列
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    # 搜索以root开头的所有行,并输出第7列
    cat /etc/passwd | grep ^root | cut -d ':' -f 7
    cat /etc/passwd | awk -F : '/^root/{print $7}' #分割后每一列就是一个位置参数

    # 搜索以root开头的所有行,并输出第1,7列用逗号分割
    cat /etc/passwd | awk -F : '/^root/{print $1","$7}'

    # 搜索第1,7列用逗号分割,且在所有行前面添加:'user, shell',在后面添加’end'
    cat /etc/passwd | awk -F : 'BEGIN{print "user, shell"} {print $1","$7} END{print "end"}'

    # 将第三行数值都+i
    cat /etc/passwd | awk -F : -v i=1 '{print $3+i}'

    # 输出文件名,每行的行号,每行有几列
    cat /etc/passwd | awk -F : '{print FILENAME","NR","NF}'

    # 输出空行所在的行号
    ifconfig | grep -n ^$
    ifconfig | awk '/^$/ {print NR}'

    # 找到ip
    ifconfig | grep 'inet ' | cut -d ' ' -f 10
    ifconfig | awk '/inet /{print $2}'
赏

谢谢你请我吃糖果

  • shell
  • shell

扫一扫,分享到微信

微信分享二维码
1- 张量
5- shell 综合应用
  1. 1.
  2. 2. 6- shell 文本处理工具
    1. 2.1. 6.1 cut
    2. 2.2. 6.2 awk
© 2025 ke
Hexo Theme Yilia by Litten
  • 所有文章
  • 友链
  • 关于我

tag:

  • conda
  • debug
  • 机器学习
  • docker
  • 博客
  • hexo
  • Git
  • 图像处理
  • Linux
  • 论文
  • 名词概念
  • 对比学习
  • shell
  • python
  • 微信小程序
  • pytorch
  • 数据结构
  • 线性表
  • 栈
  • 双链表
  • 单链表
  • 队列
  • 树
  • 二叉树
  • 并查集
  • 哈夫曼树
  • 串
  • 图
  • 最小生成树
  • 最短路径
  • 查找
  • 平衡二叉树
  • 二叉排序树
  • 算法,排序
  • B树
  • 算法,二分
  • 算法,高精度
  • 算法,双指针
  • 算法,差分
  • 鼠标
  • ppt
  • Windows
  • viso
  • powertoyes
  • word
  • zotero
  • 安装
  • pycharm
  • 键盘
  • kaggle
  • windows
  • vscode
  • 生产实习
  • java
  • springboot
  • 项目
  • QAnything
  • stable diffusion
  • lora
  • 经验
  • diffusion
  • 视频生成
  • 深度学习
  • 风格迁移
  • 视频风格迁移
  • 代码
  • 视频
  • 超分
  • 视频编辑
  • 命令
  • powershell
  • paper
  • 复现
  • 图像编辑

    缺失模块。
    1、请确保node版本大于6.2
    2、在博客根目录(注意不是yilia根目录)执行以下命令:
    npm i hexo-generator-json-content --save

    3、在根目录_config.yml里添加配置:

      jsonContent:
        meta: false
        pages: false
        posts:
          title: true
          date: true
          path: true
          text: false
          raw: false
          content: false
          slug: false
          updated: false
          comments: false
          link: false
          permalink: false
          excerpt: false
          categories: false
          tags: true
    

  • 友情链接1
  • 友情链接2
  • 友情链接3
  • 友情链接4
  • 友情链接5
  • 友情链接6
很惭愧

只做了一点微小的工作
谢谢大家