linux shell中常见文本处理:去重(uniq)、文本截取(cut)、文本转换(tr)、文本合并(paste)、文件分割(split)

2023-11-10

1、文本去重 uniq

usage: uniq [-ic]

-i 忽略大小写

-c 计算重复行数

$ cat aa.txt 
bb 3
aa 2
bb 3
bb 3
aa 2


$ cat aa.txt | sort -t" " -k 2| uniq -ic 
   2 aa 2
   3 bb 3

2、使用 cut 截取文本

usage:

usage: cut -b list [-n] [file ...]
       cut -c list [file ...]
       cut -f list [-s] [-d delim] [file ...]

cut -f 指定的列 -d "分隔符"

cut -c 指定列的字符

eg:

cut -f 1,3 -d ":" file    #获取文件中:分割后的第一 、三列

cut -f 1-3 -d ":" file   #获取文件中:分割后的第一至第三列 

eg:获取文件中的第一列 

$ cat aa.txt 
bb 3
aa 2
bb 3
bb 3
aa 2
$ cat aa.txt | cut -f 1 -d " "
bb
aa
bb
bb
aa

# 获取文件中第一个字符
$ cat aa.txt | cut -c 1
b
a
b
b
a

# 获取文件中第一个和第二个字符
$ cat aa.txt | cut -c 1-2
bb
aa
bb
bb
aa

 

3、tr 进行文本转换

usage: tr [-Ccsu] string1 string2

       tr [-Ccu] -d string1

       tr [-Ccu] -s string1

       tr [-Ccu] -ds string1 string2

 

eg:

# 将小写替换成大写输出

$ cat aa.txt | tr '[a-z]' '[A-Z]'
BB 3
AA 2
BB 3
BB 3
AA 2

#替换文本中指定内容

$ cat aa.txt | tr “aa” "AA"
bb 3
AA 2
bb 3
bb 3
AA 2

 

4、paste 文本合并

usage:

paste [-d "分隔符"]   fileA  fileB

# 将A b两个文件用“:”分隔后,进行拼接,

$ cat A.txt 
a
b
c
d

$ cat B.txt 
2
3
4
5
6
7

$ paste -d ":" A.txt B.txt 
a:2
b:3
c:4
d:5
:6
:7

5、使用split分割大文件

usage: split [-a sufflen] [-b byte_count] [-l line_count] [-p pattern]
             [file [prefix]]

-l 按行分割

-b 按照文件大小分割  #二进制文件无行的概念,只能按照指定的大小进行分割

eg:

$ split -l 10  demo.txt split_dir/    #按照每10行分割demo.txt文件 ,将分割的文件保存到split_dir 文件夹中

$ cd split_dir/
$ ls     # 查看分割文件目录,可以看到分割的众多子文件
aa	ac	ae	ag	ai	ak	am	ao	aq	as	au	aw	ay	ba
ab	ad	af	ah	aj	al	an	ap	ar	at	av	ax	az	bb


$ split -b 1m  demo.txt split_dir/ #按照每个分割文件1m的大小分割文件

 

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

linux shell中常见文本处理:去重(uniq)、文本截取(cut)、文本转换(tr)、文本合并(paste)、文件分割(split) 的相关文章

  • 插入到表中并在 SQL 中拆分字符串

    我想将分割字符串插入到我的表中 如您所见 create table Organization organizationId bigint provienceId bigint CityId bigint TownId bigint Inse
  • 使用 cut 为时间变量创建 24 个类别

    在这里 我导入数据 对其进行一些操作 这可能不是问题 修复所在 前两行设置了我的剪切参数 lab var num lt 0 24 times var lt c 0 100 200 300 400 500 600 700 800 900 10
  • 如何在 Python 3.x 中删除字符串末尾的数字?

    我想从字符串末尾删除数字 但我不知道 Can the split 方法工作 我怎样才能做到这一点 初始字符串看起来像asdfg123 而我只想asdfg反而 感谢您的帮助 不 split 不起作用 因为 split 只能与要分割的固定字符串
  • 为什么 split(' ') 试图变得(太)聪明了?

    我刚刚发现以下奇怪的行为String split a tb c nd split gt a b c d a tb c nd split gt a b c d a tb c nd split gt a tb c nd 来源 https git
  • 在 Postgres 中以周为单位分割间隔

    这是另一个关于日期的 SQL 问题 我正在使用 PHP 和 Postgres 构建一个日历应用程序 它将显示几天 几周甚至几个月的事件 每个事件都有开始日期和结束日期 按范围选择它们不是问题 然而 如果 Postgres 可以在每周的第一天
  • JavaScript 用空格分割字符串

    我想分割一个字符串 但我想保留空白 例如 var str my car is red var stringArray stringArray 0 my stringArray 1 stringArray 2 car stringArray
  • 属性错误:“列表”对象没有属性“拆分”

    我正在尝试读取一个文件并用逗号分隔每行中的一个单元格 然后仅显示第一个和第二个单元格 其中包含有关纬度和经度的信息 这是文件 time 纬度 经度 类型2015 03 20T10 20 35 890Z 38 8221664 122 7649
  • 将数组拆分为特定数量的块

    我知道array chunk 允许将数组拆分为多个块 但块的数量根据元素的数量而变化 我需要的是始终将数组拆分为特定数量的数组 例如 4 个数组 以下代码将数组分为 3 个块 两个块各有 2 个元素 1 个块有 1 个元素 我想要的是将数组
  • strtok - 如何避免换行并放入字符串数组?

    如果我欺骗了主题 我真的很抱歉 我在这里搜索但没有结果 我有代码 void split char str char splitstr char p char splitbuf 32 int i 0 p strtok str while p
  • 需要在R中跳过不同数量的行

    我正在使用以下代码来处理我的数据 但最近我意识到使用skip 27 在数据开始之前跳过存储在我的文件中的信息 不是一个好的选择 因为每个文件中要跳过的行数不同我的目标是读取存储在多个文件夹中的各种txt文件 并非所有文件都有相同的列数 列的
  • 将文本拆分为数组,同时保留 Swift 中的标点符号

    我想将文本拆分为一个数组 保持标点符号与其余单词分隔开 因此字符串如下 Hello I am Albert Einstein 应该变成这样的数组 Hello I am Albert Einstein 我尝试过sting components
  • 如何使用多个字符的字符串在 PowerShell 中“拆分”字符串?

    当在 PowerShell 中的字符串上使用 Split 运算符并尝试使用包含多个字符的字符串进行拆分时 PowerShell 会表现出奇怪的行为 它使用any字符串中要分割的字符数 例如 PS C Users username gt On
  • Java .split("|") 不工作

    我刚刚遇到了一个问题分割法 http docs oracle com javase 6 docs api java lang String html split 28java lang String 29for 字符串不适用于字符 作为一个
  • 将一个 IEnumerable 拆分为多个 IEnumerable

    我是 linq 新手 我需要根据指示器将 Couple string text bool Indicator 类型的 IEnumerable 拆分为多个 IEnumerable 我尝试使用skipWhile 和 TakeWhile 但没有找
  • 用 R 将矩阵划分为 N 个大小相等的块

    如何使用 R 将矩阵或数据帧划分为 N 个大小相等的块 我想水平切割矩阵或数据框 例如 给定 r 8 c 10 number of chunks 4 data matrix seq r c nrow r ncol c gt gt gt da
  • Apache Camel 的 JsonMappingException

    我在骆驼路线上遇到以下异常 Caused by com fasterxml jackson databind JsonMappingException No serializer found for class org apache cam
  • 为什么在 Vim 的插入模式下粘贴长一行非常慢?

    昨天 当我尝试将 1200 行 每行 80 个字符 粘贴到 Vim 时 我的 Macbook 被卡住了 下载文件而不是粘贴文本要快得多 我认为这个问题可能是互联网运营商允许上传速度比下载速度慢的原因 如果您将其粘贴到终端窗口中 Vim 会认
  • String.split() 的 ArrayIndexOutOfBoundsException

    这是从文件中读取输入的代码 该文件包含表单中的学生详细信息roll name age street city zipcode 其中很少有值可以null even 对于以下代码 我得到java lang ArrayIndexOutOfBoun
  • R - 分割数据帧而不删除 NA 值

    如果我有一个 df letter body part a head b head c NA d NA e left foot 我想将它分成 2 个 dfs 一个只有 body part head 另一个则包含其他所有内容 IE 列表 我可以
  • 将数据框中的每个 x 个字符拆分为字符串

    我知道这里有一些关于每隔一段时间分割一个字符串的答案nth字符 例如this one https stackoverflow com questions 23208490 split each character in r and this

随机推荐

  • 解决Intellij IDEA maven 自动设置JDK为JDK1.5

    在idea中创建maven项目 每次更新或重新载入maven项目后 都会重新变成JDK1 5 就算手动设置maven项目或者模块JDK1 8 刷新后还是会变为JDK1 5 这是由于创建项目时没有指定jdk版本 而maven的默认jdk版本为
  • Oracle instr函数和sign函数详解

    1 instr 函数 俗称 字符查找函数 格式一 instr string1 string2 instr 源字符串 目标字符串 格式二 instr string1 string2 start position nth appearance
  • 目标检测YOLO实战应用案例100讲-基于改进YOLOv5的口罩人脸检测

    目录 前言 国内外研究现状 目标检测研究发展 国内外口罩人脸检测研究现状
  • Spring Swagger在nginx 二级url 无法正常使用问题解决

    问题描述 测试环境用了nginx做二级url做映射 但swagger的 http www xxx com 二级url v2 JSON里面的host地址还是一级目录 不自动对应nginx做了映射的二级url 因此使用swagger ui ht
  • CENTOS 下service network restart失败最全解决方案

    经常会有人在centOS 7下更改完静态ip后发现network服务重启不了 翻遍了网络 尝试了各种方法 终于解决了 现把各种解决方法归纳整理 希望能让大家少走点歪路 首先看问题 执行service network restart命令后出现
  • 五个温度带的分界线_寒带与温带的分界线是什么啊

    寒带与温带的分界线是什么啊2020 06 01 09 19 44文 钟诗贺 温带与寒带的分界线是 极圈 纬度 66 5 度 地球五带中 热带与温带的分界线是回归线 南北回归线 纬度是23 5度 南北纬23 5度 温带与寒带的分界线是极圈 南
  • 【ISP】光圈、焦距与景深的关系

    最直接的图 1 弥散圆 在焦点前后 光线开始聚集和扩散 点的影象变成模糊的 形成一个扩大的圆 这个圆就叫做弥散圆 现实当中 观赏拍摄的影象是以某种方式 比如投影 放大成照片等等 来观察的 人的肉眼所感受到的影象与放大倍率 投影距离及观看距离
  • ChatGPT4使用体验

    GPT火了很久 被各种媒体吹上了天 但是因为工作原因 一直没有机会去真正的尝试 最近终于有了一天的空闲时间 就想着好好看看GPT当前到底能干啥 如下是我针对不同类别 分别提出不同问题 GPT给的回答 如果有兴趣可以看看 1 定性问题 对于一
  • pandas.read_csv参数详解

    pandas read csv参数整理 读取CSV 逗号分割 文件到DataFrame 也支持文件的部分导入和选择迭代 更多帮助参见 http pandas pydata org pandas docs stable io html 参数
  • 带你学习STM32f1之蓝牙控制LED(简单入手,含主代码)

    目录 前言 一 蓝牙模块简介 二 代码部分详解 三 总结 题外话 前言 这次博文还是主要以STM32f103zet6小系统板来操作 依旧使用库函数入手 寄存器版本可能要到后续再做更新 因为我才刚开始入手寄存器不久 不是很熟练 还在熟悉哈哈
  • anaconda的python环境变量_装了anaconda之后如何设置anaconda、python环境变量

    装了anaconda之后如何设置anaconda python环境变量 1 装了anaconda之后如何设置anaconda环境变量 参考 https www cnblogs com avivi p 10282366 html 后面部分 2
  • python search group_python笔记52-re正则匹配search(group groups groupdict)

    前言 re search扫描整个字符串并返回第一个成功的匹配 re findall返回字符串中所有不重叠匹配项的列表 如果没有匹配到返回空list不会报错 search匹配对象有3个方法 group groups groupdict 这3个
  • BFS模板

    st u 1 标记 bfs u queue
  • leetcode-位运算

    通过位运算取出一个数字的二进制表示的每一位 从末位开始取 比如说 11 1011 所以依次取出末位1 然后是1 0 1 public class bit cal public static void main String args int
  • Java网络编程BIO/NIO

    Java网络编程 网络编程的基础知识 Socket Socket是应用层与TCP IP协议族通信的中间软件抽象层 它是一组接口 在设计模式中 Socket其实就是一个门面模式 它把复杂的TCP IP协议族隐藏在Socket接口后面 对用户来
  • 7-2 装箱问题 (20分)

    7 2 装箱问题 20分 假设有N项物品 大小分别为s 1 s 2 s i s N 其中s i 为满足1 s i 100的整数 要把这些物品装入到容量为100的一批箱子 序号1 N 中 装箱方法是 对每项物品 顺序扫描箱子 把该物品放入足以
  • 机器学习算法:RandomForestClassifier的使用

    学习目标 知道Bagging集成原理 知道随机森林构造过程 知道RandomForestClassifier的使用 了解baggind集成的优点 1 Bagging集成原理 目标 把下面的圈和方块进行分类 实现过程 1 采样不同数据集 2
  • js获取input file的虚拟路径C:\fakepath\解决方法

    js获取input file的虚拟路径C fakepath 解决方法 函数 文本框 在网上百度了很多方法 基本上在chome浏览器上获取绝对路径的方法都行不通 目前也没找到合适的通过路径解决问题的方法 后期会继续想办法的 这里就写一下通过b
  • spring-cloud-dubbo--集成示例(超详细)-并使用nacos做注册中心

    网上资料又多又乱 今天就来整理一下吧 图片比较多 缺少文字 所有的步骤图片都在这下面了 这就是一个简易的dubbo服务 如有大佬看到 忽喷 这仅仅只是一个dubbo案例 以实现功能为目的 1 新建spring boot项目 我使用的idea
  • linux shell中常见文本处理:去重(uniq)、文本截取(cut)、文本转换(tr)、文本合并(paste)、文件分割(split)

    1 文本去重 uniq usage uniq ic i 忽略大小写 c 计算重复行数 cat aa txt bb 3 aa 2 bb 3 bb 3 aa 2 cat aa txt sort t k 2 uniq ic 2 aa 2 3 bb