Linux文本处理工具【tr、cut、sort、uniq】

news2024/11/17 21:21:57

1. tr 命令——替换、压缩、删除

tr (Text Replacer) 命令常用来对来自标准输入的字符进行替换、压缩和删除。

命令格式 :tr [选项]... SET1 [SET2]

(SET 是一组字符串,一般都可按照字面含义理解)

选项:

-d 删除

-s 压缩

tr  1 a    //遇到1换成

tr -d 1  //把1删除

tr -s 1   //压缩连续的1

tr -s " "//压缩连续的空格

tr '[a-z]''[A-Z]'                        //将所有小写字母替换为大写

`cat file | tr [选项] 参数`

生成随机密码:

cat /dev/urandom |tr -dc '[:alnum:]'|head -c12

2. cut命令——切列

cut 命令可以提取文本文件数据的指定列。

命令格式 : cut [选项]... [文件]...

选项:

-d 指明分隔符

-f 想要获取的字段

#: 第#个字段,例如 3

#,#[,#]:离散的多个字段,例如 1,3,6

#-#:连续的多个字段, 例如 1-6

cut -d: -f1,3/etc/passwd |head  //以冒号作为分隔的条件,取文件的第1列和第3列

`cat file | cut [选项] 参数`

注意!不能将连续的字符当作分隔符

df文件系统                 

df  |cut -d" " -f1,5   //以空格为分隔符,取第1和第5列文件系统

 //内容错误,因为有连续的空格,不能将连续的字符当作分隔符!

df |tr -s " "|cut -d" "-f1,5//先将空行压缩成一个,再提取文件系统 已用%

df |tail -n +2|tr  -s  " " |cut -d  " "  -f5|tr   -d   //去除百分号,对比数字

3. sort命令——排序

把整理过的文本显示在屏幕上,不改变原始文件。sort将文件的每一行作为一个单位相互比较,比较原则是从首字符向后依次按ASCII码进行比较,最后将它们按升序输出。

命令格式 : sort [options] file(s)

选项:

  • -n 按照数字大小进行排序(默认升序)
  • -r 倒序排序
  • -k 指定列
  • -t 指定分隔符

4. uniq命令——去重

uniq(unique 唯一)是一个用于文本处理中删除重复行的工具(只能将连续的重去掉),常与sort命令结合使用。

命令格式 : uniq [OPTION]... [FILE]...

选项:

-c 显示每行重复出现的次数

-u 仅显示不曾重复的行

-d 仅显示重复过的行

去重

显示每行重复出现的次数 

仅显示不曾重复的行

仅显示重复过的行

`cat file | uniq 选项`

`面试题:`查看访问日志,找出访问前10名的用户

cat  access_log  |cut  -d  "  "  -f1 |sort  -n |uniq  -c |sort  -nr |head

cat access_log |cut  -d" "  -f1     //先取地址

cat access_log |cut  -d" "  -f1|sort  //再排序一样的ip地址在一起

cat access_log |cut  -d" "  -f1|sort|uniq  -c  //去重

cat access_log |cut  -d" "  -f1|sort|uniq   -c|sort  -nr   |head  //再数字排序,取前10行

5. seq命令

seq命令是 sequence 的缩写,用于打印数字序列。

求1-6的和,bc是计算命令21

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1655954.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

vue地址选择器-三级联选择器+详细地址

在页面的显示情况 前端拼接实现存储 具体实现步骤 1.安装中国全省市区的数据 在命令提示符窗口使用管理员身份进入对应vue项目的文件夹,在窗口安装 npm install element-china-area-data -S2.在script内引入安装的数据 import {regionData,codeToText } from…

SpringBoot 使用 @RequiredArgsConstructor(onConstructor_ = @Autowired) 报错解决

若使用 RequiredArgsConstructor(onConstructor_ Autowired) 启动报错,或者爆红可以使用以下方法解决 1. 安装或启用 Lombok插件 2. 检查 Lombok 版本 3. 若 onConstructor_ 爆红, 可能是IDEA中文软件包冲突 4. 若以上还是不行,可以添加…

CSS-盒子模型

盒子模型的重要组成部分 内容区域content:width , height 内边距:内边框和内容区域的距离Padding边框线:Border外边距:Margin Border (边框线) 属性:Border 属性值:边框线粗细px 线条样式 颜色(不区分…

工业无尘布的静电问题及解决方法

工业生产中,无尘布是一种常用的清洁工具,但在使用过程中,静电问题常常会给生产环境带来困扰。本文优斯特将探讨工业无尘布的静电问题,并介绍解决这些问题的方法。 1. 静电产生原因 工业无尘布在擦拭过程中可能会产生静电&#x…

使用凌鲨建立软件研发技能学习小组

凌鲨(OpenLinkSaas)的团队功能除了提供论坛功能,还能记录团队成员的成长记录。 使用方法 打开团队功能 团队功能在默认情况下是关闭的,你可以在登录后打开团队功能开关。 创建学习团队 日报/周报/个人目标一般是企业团队需要,建议关闭。 …

unity基础(一)

内容概要: 生命周期函数vector3 位置 方向 缩放旋转等信息Vector3欧拉角和Quaternion四元素unity脚本执行顺序设置 一 生命周期函数 方法说明Awake最早调用,所以一般可以再此实现单例模式OnEnable组件激活后调用,在Awake后会调用一次Start在Update之前调用一次&a…

Spring 中 @Transactional 是怎么引入事务 AOP 的?

在 Spring 中,Transactional 注解是管理事务的关键工具之一。它允许开发人员通过简单地在方法或类上添加注解来定义事务的边界,从而实现对数据库操作的事务管理。 Transactional 是基于 Spring AOP(Aspect-Oriented Programming,…

【小笔记】问答系统可视化实现的三种方式

下面三种方式都是基于Python的哈,从简单到复杂。 方式一:命令行交互问答 优点:原始简单直接 方式二:使用Python可视化框架 优点:无需学习前端技术栈即可搭建一个web。 streamlit:⭐️⭐️⭐️⭐️gra…

炒美股怎么开户?

近年来,随着国内投资者对境外投资需求的不断增长,炒美股逐渐成为许多投资者的选择。然而,随着监管政策的不断完善,传统的互联网券商开户方式已经不再适用。那么,对于想要入场美股市场的投资者来说,该如何开…

太牛逼了,用ComfyUI中一键完成电商模特换装换背景!商业级教程附上!

🌐 大背景:电商时代的画卷正在翻页 在全球电子商务风起云涌的今天,市场竞争愈发激烈。商家们始终在寻求提高效率、减少成本和增强用户体验的新方法。然而,一个关键问题一直困扰着电商行业——**如何高效且经济地展示商品&#xff…

Vue 项目 尚品汇(二)(暂停进行)

一、Home 模块组件拆分 基本流程 先写静态页面 拆分静态组件 获取服务器的数据进行展示 动态业务 (一)三级联动组件 如果一个组件在很多模块之间都在使用,我们就拆分成成一个全局组件 只需注册一次 在全局的项目都能使用 三级联动在 …

深入理解Go语言并发编程

随着计算机硬件的发展,多核处理器已经成为现代计算机的主流配置。在这样的背景下,并发编程成为了一种必备的技能。Go 语言作为一门先进的编程语言,天生支持并发编程,提供了丰富的并发原语和工具,使得并发编程变得更加容…

[YOLOv8] 用YOLOv8实现指针式圆形仪表智能读数(一)

最近研究了一个项目,利用python代码实现指针式圆形仪表的自动读数,并将读数结果进行输出,若需要完整数据集和源代码可以私信。 目录 🍓🍓1.yolov8实现圆盘形仪表智能读数 🙋🙋2.仪表目标检测…

机器人系统可以支持对接人工系统吗?

​ 随着科技的飞速发展,机器人系统在各行各业都扮演着越来越重要的角色。它们可以高效地处理大量数据,执行繁琐的任务,甚至在某些领域超越了人类的能力。然而,机器人系统也有其局限性,特别是在处理复杂的人际交往…

linux 服务器无 sudo 权限非 root 用户安装特定版本 cuda

1. 下载 cuda toolkit 下载想要版本的 cuda toolkit CUDA Toolkit 11.8 Downloads | NVIDIA Developer [xxxlocalhost ~]$ hostnamectlStatic hostname: localhost.localdomainIcon name: computer-serverChassis: serverMachine ID: b4258bf9bef54798b03e8e3a13756124Boot …

如何做到销售订单不做可用量检查,而交货单做

如何保证一个用户做某物料可用量检查时,不会锁定物料 可用量和需求冻结标志 Indicates whether, during the availability check, the material is blocked for other users. The block remains until the transaction responsible has been saved. It is set at m…

Web3与跨境支付:探讨区块链如何改变国际交易

随着区块链技术的发展和普及,人们开始意识到其在跨境支付领域的巨大潜力。在传统的跨境支付系统中,存在着诸多问题,如高昂的手续费、长时间的处理周期以及缺乏透明度等。而区块链作为一种去中心化、安全、透明且可追溯的技术,被认…

一步成像:Hyper-SD在图像合成中的创新与应用

一、摘要: 论文:https://arxiv.org/pdf/2404.13686 代码:https://huggingface.co/ByteDance/Hyper-SD 在生成人工智能领域,扩散模型(Diffusion Models, DMs)因其出色的图像生成质量而备受关注,但…

Oracle里令人头疼的生僻字处理案例

事情起因 有小伙伴找到我问一下生僻字的问题,数据库是oracle 11g,字符集是zhs16gbk 下图里显示的??应该是“𧿹”这个字,算是个生僻字。 问应用厂家就说数据库字符集建错了,要改库的字符集。…

LeetCode89:柠檬水找零

题目描述 在柠檬水摊上,每一杯柠檬水的售价为 5 美元。顾客排队购买你的产品,(按账单 bills 支付的顺序)一次购买一杯。 每位顾客只买一杯柠檬水,然后向你付 5 美元、10 美元或 20 美元。你必须给每个顾客正确找零&a…