我的编程空间,编程开发者的网络收藏夹
学习永远不晚

shell 文本数据处理

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

shell 文本数据处理

  在 linux shell 中,不同工具、程序间通过文本进行数据交互,即以文本作为输入、输出标准格式。文本成为公共的协议,使得整个 shell 成为一个开放式环境,这给文本数据的处理带来了很大的方便。

重定向

  程序的输出可通过符号 >>> 实现覆盖、追加重定向到文件。我们用 echo 命令(回显,将输入参数原样输出到控制台)和cat 命令(吐文件,将文件内容输出到控制台显示)演示重定向。

  • echo

    $ echo hello world

    hello world

  • 重定向 覆盖 到文件 test.txt

    $ echo -ne “this\nis\na\n” > test.txt

    $ cat test.txt

    this
    is
    a

  • 重定向 追加 到文件 test.txt

    $ echo -ne “test\ntext.\n” >> test.txt

    $ cat test.txt

    this
    is
    a
    test
    text.

  • 标准输出 重定向到 std.txt,标准错误 重定向到 err.txt

    $ (echo hello world && cat a) > std.txt 2> err.txt

    $ cat std.txt

    hello world

    $ cat err.txt

    cat: a: No such file or directory

  • 标准错误 重定向到 标准输出

    $ (echo hello world && cat a) > std.txt 2>&1

    $ cat std.txt

    hello world
    cat: a: No such file or directory

管道

  通过管道(使用符号 | 表示),可以把一个程序(cat)的输出,作为另一个程序(echo)的输入。

  • cat test.txt | xargs echo

    this is a test text.

grep 模式搜索

  简单的模式搜索可以使用 grep 命令来完成。

  • Usage: grep [OPTION…] PATTERNS [FILE…]

  • 常用 OPTION

    -n 显示行号
    -H 显示文件名
    -h 隐藏文件名
    -r 递归整个目录中的文件
    -o 只显示匹配的内容
    -E 使用扩展的正则表达式 PATTERN

sed 匹配替换

  • Usage: sed OPTIONS… [SCRIPT] [INPUTFILE…]

  • 常用 OPTIONS

    -i 在原文件中 in-place 执行操作
    -e 指定 SCRIPT,可以有多个,如 sed -e 'SCRIPT1' -e 'SCRIPT2' [INPUTFILE...]
    -f 从文件中加载 SCRIPT
    -r, -E 使用扩展的正则表达式
    -u 不使用缓存
    -n 取消自动输出,只输出 p 操作内容

  • [SCRIPT] 格式: [addr]X[options]

    • [addr] 用于定位需要处理的行

      [addr] 格式用例说明
      行号11
      行 range15,3015 ~ 30
      正则匹配/foo/包含字符串 foo 的行
      取反1!除第 1 行外的所有行
    • X 是操作命令,[options]X 命令的参数

      X 命令[options]用例说明
      i要插入的内容1i before在第1行前插入一行,内容为 before
      a要追加的内容1a after在第1行后追加一行,内容为 after
      rfile1r title.txt读取文件 title.txt 中的内容,输出到第1行后面
      wfile/foo/w title.txt将包含 foo 的行输出到文件 file.txt
      s/pattern/replace/[g]s/foo/bar/g将所有 foo 替换为 bar,不加 g 则只替换每行中第一次出现的 foo
      z-/foo/ z将包含 foo 的行清空,保留这个空行
      d-/foo/ d删除包含 foo 的行
      qexit-code/foo/q 2处理完包含 foo 的行就退出,返回错误码 2 到shell
      =-=输出所有行的行号
    • 对匹配的行,执行多个 SCRIPT 操作

      在一条 sed 命令中,可以使用多条用 ; 间隔开的 SCRIPT,形如 sed '[a1]X1[o1]; [a2]X2[o2]; [a3]X3[o3]' [INPUTFILE…]

  • 替换

  • 插入

  • 删除

awk 复杂业务编程(TODO)

  • Usage:
    awk [OPTIONS] ‘program’ [INPUTFILE…]
    awk -f program-file [INPUTFILE…]

参考

来源地址:https://blog.csdn.net/word_world/article/details/129966354

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

shell 文本数据处理

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

shell 文本数据处理

文章目录 重定向管道`grep` 模式搜索`sed` 匹配替换`awk` 复杂业务编程(TODO)参考   在 linux shell 中,不同工具、程序间通过文本进行数据交互,即以文本作为输入、输出标准格式。文本成为公共的
2023-08-24

Shell脚本如何逐行处理文本文件

经常会对文体文件进行逐行处理,在Shell里面如何获取每行数据,然后处理该行数据,最后读取下一行数据,循环处理.有多种解决方法如下: 1.通过read命令完成. read 命令从标准输入中读取一行,并把输入行的每
2022-06-04

Shell脚本如何实现文本处理

这篇文章给大家分享的是有关Shell脚本如何实现文本处理的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。4.1 排序文本4.1.1 行的排序未提供命令行选项时,整个记录会根据当前locale所定义的次序排序。在传统
2023-06-09

Torch如何处理文本数据

Torch是一个用于机器学习和深度学习的开源机器学习库。在处理文本数据时,Torch可以使用其内置的文本处理模块来进行文本预处理和特征提取。以下是Torch处理文本数据的一般步骤:读取文本数据:首先,需要将文本数据加载到Torch中。可以使
Torch如何处理文本数据
2024-03-08

使用Shell脚本怎么逐行处理文本文件

使用Shell脚本怎么逐行处理文本文件?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。1.通过read命令完成.read 命令从标准输入中读取一行,并把输入行的每
2023-06-14

Caffe中怎么处理文本数据

在Caffe中处理文本数据通常需要进行以下步骤:数据预处理:将文本数据转换成适合Caffe处理的格式,一般是将文本数据转换成图片格式或者特征向量格式。这可以通过使用文本编码技术(如词袋模型、word2vec等)将文本转换成固定长度的向量表示
Caffe中怎么处理文本数据
2024-03-07

Python 文本数据预处理实践

在进行数据分析与可视化之前,得先处理好数据,而很多时候需要处理的都是文本数据,本文总结了一些文本预处理的方法。

Shell脚本学习指南之文本处理工具

4.1 排序文本 4.1.1 行的排序未提供命令行选项时,整个记录会根据当前locale所定义的次序排序。在传统的C locale中,也就是ASCII顺序。 4.1.2 以字段排序-k选项的后面接着的是一个字段编号,或者是一对数字。每个编号
2022-06-04

怎么使用Python处理文本数据

本篇内容介绍了“怎么使用Python处理文本数据”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!用python处理文本数据实验目的熟悉pyth
2023-07-02

kafka如何处理各种文本数据

Kafka本身并不处理各种文本数据,它只是一种分布式消息队列,用于可靠地传输数据。但可以使用Kafka来传输和存储各种文本数据。下面是一些使用Kafka处理各种文本数据的常见方法:1. 发送和接收文本消息:可以使用Kafka的Produce
2023-10-12

数据处理的大一统——从 Shell 脚本到 SQL 引擎

架构考察完上述四种系统之后,可以看出,数据处理在某种角度上是大一统的——首先抽象出归一化的数据集,然后提供施加于该数据集之上的运算集,最终通过组合的形式表达用户的各种数据处理需求。
Shell脚本SQL2024-11-30

Shell文本处理三剑客之sed的使用

sed 是 stream editor 的缩写,流编辑器,主要用于对标准输出或文件进行处理。语法:stdout | sed [option] "pattern command" sed [option] "pattern command"
2022-06-04

编程热搜

目录