Shell之高效文本处理命令

目录

一、排序命令—sort

基本语法

常用选项 

二、去重命令—uniq

基本语法

常用选项

三、替换命令—tr 

基本语法:

常用选项 

四、裁剪命令—cut 

基本语法:

常用选项 

字符串分片  

 五、拆分命令—split

基本语法: 

六、 文件合并命令—paste

基本语法:

常用选项 

常用命令 

七、扫描命令—eval

实操 


一、排序命令—sort

以行为单位,对文件的内容进行排序

基本语法
格式:   sort   [选项]   参数
常用选项 
-n按照数组进行排序

-r

反向排序
-u排序后去重
-t'字段分隔符' 
-k字段序号
-o<输出文件>另保存输出排序的结果(相当于重定向输出)
-f忽略大小写,把小写字母也当作大写字母看待
-b忽略每行前面的空格

实操

sort  -n    #根据数字大小排序
sort  -n  -r     #原本的排序变成倒序排序

sort  -u   #去重

sort  -o cat /etc/passwd|sort -o abc.txt  #通过管道符号将查找到的内容进行输出保存cat abc.txt

二、去重命令—uniq

uniq命令用于报告或者忽略文件中连续的重复行,常与sort命令结合使用

基本语法
格式:uniq [选项] 参数  ​
cat 文件| uniq 选项
常用选项
-c对连续的重复行进行去重,并统计重复次数
-u仅输出不连续重复的行
-d仅输出连续重复的行

实操

uniq  -c   #重复的行计数并去重

uniq  -u   #显示仅出现一次的行(包括不连续的重复行)

 

uniq  -d    #仅显示重复的数字

三、替换命令—tr 

常用来对来自标准输入的字符进行替换,压缩,和删除

基本语法:
格式: cat 文件| tr [选项] 参数 
常用选项 
-c仅保留 参数1 的字符,其它字符(包括\n)都替换成 参数2 的字符
-d 删除所有 参数1 的字符
-s根据 参数1 进行去重,如果有 参数2 则再用 参数2 的字符替换 参数1 的字符
-ttr命令的默认选项,使用 参数2 的字符替换成 参数1 的字符

tr-c 

将输入的字符串 "abc" 中不包含字符 "ab" 的部分替换为字符 "a",而包含字符 "ab" 的部分保持不变

tr-c 

删除输入字符串中的字符 "a" 和 "b" 

 tr  -s

对文件 "11.txt" 中的内容按照数字进行排序,并且将重复的换行符压缩为一个换行符 

tr -t       #与默认效果相同

用于windows的编写的脚本格式转换为Linux格

Windows的另起一行格式(\r\n)转换成 Linux的另起一行格式(\n)

cat 文件 | tr -d '\r' > 新文件

四、裁剪命令—cut 

对字段进行截取和剪裁

基本语法:
cut [选项] 参数cat file | cut [选项] 参数 
常用选项 
-d '分隔符' -f 字段序号根据 -d 指定的分隔符的截取显示 -f 指定的字段
--complement取反,不显示 -f 指定的字段
--output-delimiter '分隔符'指定输出的字段分隔符
字符串分片  
echo ${变量:下标:长度}  ;   #下标起始从0开始echo $变量 | cut -b 起始下标-终止下标         #下标起始从1开始expr substr $变量 起始下标 长度              #下标起始从1开始

 五、拆分命令—split

  • 用于在Linux下将大文件拆分为若干小文件
  • -l指定行数分割文件
    -b指定文件的大小分割文件
基本语法: 
split 选项 参数 原始文件 拆分后文件名前缀

六、 文件合并命令—paste

按照字段来进行文件的合并

基本语法:
paste   [选项]   文件1   文件2
常用选项 
-d '分隔符' 指定输出的字段分隔符
-s将每个列横向输出
常用命令 
cat 文件1 文件2  ... > 新文件    #合并文件的行
paste -d '分隔符' 文件1 文件2 ... > 新文件    #合并文件的列
[root@localhost ~]# cat a b
1
3
4
5
6
7
11
12
q
a
z
w
s
x
e
c
[root@localhost ~]# paste a b
1	q
3	a
4	z
5	w
6	s
7	x
11	e
12	c

七、扫描命令—eval

  • 在命令行执行前,先将命令行里的变量置换成对应的值后,再执行命令
实操 
[root@localhost ~]# vim 1.sh
[root@localhost ~]# chmod +x 1.sh
[root@localhost ~]# bash 1.sh
33
66
[root@localhost ~]# vim 1.sh
#!/bin/basha=33
b=a
eval echo \$$b    #普通echo输出的变量b的值为
eval $b=66       #经过eval扫描输出变量b的值
echo $a          #输出变量a

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

kafka用java收发消息

用java客户端代码来对kafka收发消息 具体代码如下 package com.cool.interesting.kafka;import org.apache.kafka.clients.consumer.ConsumerConfig; import org.apache.kafka.clients.consumer.ConsumerRecord; import org.apache.kafka.clients.consumer.ConsumerRecords; i…

Vue 之 后台管理系统的权限路由的管理

目录 前言实现理解三者的概念以及之间的关联账号&#xff08;用户&#xff09;角色菜单 用户权限授权相关概念实现代码实现登录跳转路由&#xff0c;路由守卫中进行权限验证按钮权限封装指令&#xff1a;调用&#xff08;其中一个页面参考&#xff09; 思路&#xff0c;操作流程…

景源畅信数字:做抖音切片的方法分享?

一提起抖音切片&#xff0c;很多人可能会想到那些让人眼前一亮的短视频。它们通常短小精悍&#xff0c;内容丰富多彩&#xff0c;能够迅速吸引观众的注意力。但是&#xff0c;如何制作出这样的切片视频呢?这就是我们今天要探讨的问题。 一、选材与剪辑 制作抖音切片&#xff0…

年度更新!统信UOS服务器版V20(1070)超越期待

不负广大客户期待&#xff01; 统信UOS服务器版V20&#xff08;1070&#xff09;年度首更 功能更强大、性能更卓越、生态更丰富 助您畅享安全、便捷、高效的产品和服务 新平台&#xff0c;新生态 统信UOS服务器版始终坚持进行生态适配&#xff0c;目前已支持超过百万种兼容…

某能源集团电力公司搭建数据报表中心,实现采集填报分析一体化

​在当今这个信息爆炸的时代&#xff0c;数据已成为企业最宝贵的财富&#xff0c;越来越多的企业开始重视数据的积累和归集。在企业日常生产和工作过程中&#xff0c;会产生绵延不断的数据&#xff0c;但这些数据往往没有统一的记录、归纳和整理&#xff0c;或者录入了系统却分…

电子邮箱是什么?付费电子邮箱和免费电子邮箱有什么区别?

注册电子邮箱前&#xff0c;有付费电子邮箱和免费电子邮箱两类选择。付费的电子邮箱和免费的电子邮箱有什么区别呢&#xff1f;区别主要在于存储空间、功能丰富度和售后服务等方面&#xff0c;本文将为您详细介绍。 一、电子邮箱是什么&#xff1f; 电子邮箱就是线上的邮局&a…

【传知代码】VRT: 关于视频修复的模型(论文复现)

前言&#xff1a;随着数字媒体技术的普及&#xff0c;制作和传播视频内容变得日益普遍。但是&#xff0c;视频中由于多种因素&#xff0c;例如传输、存储和录制设备等&#xff0c;经常出现质量上的问题&#xff0c;如图像模糊、噪声干扰和低清晰度等。这类问题对用户的体验和观…

【硬件模块】ESP-01SWiFi模块基于AT指令详解(WiFi,TCP/IP,MQTT)

ESP-01S ESP-01S是由安信可科技开发的一款Wi-Fi模块。其核心处理器是ESP8266&#xff0c;该处理器在较小尺寸的封装中集成了业界领先的Tensilica L106超低功耗32位微型MCU&#xff0c;带有16位精简模式&#xff0c;主频支持80MHz和160MHz&#xff0c;并集成了Wi-Fi MAC/BB/RF/P…

构建企业的多分支网络,你可以有这些选择

为企业构建稳定、灵活的网络&#xff0c;是企业IT人员非常重要的基础工作之一。对于多分支企业而言&#xff0c;总部与各分支之间需要进行数据互联和监管&#xff0c;所以大多面临组网需求。多分支企业组网是指企业总部与分公司、工厂、门店等多点之间的网络组建&#xff0c;不…

Gradio 案例——将 dicom 文件转为 nii文件

文章目录 Gradio 案例——将 dicom 文件转为 nii文件界面截图依赖安装项目目录结构代码 Gradio 案例——将 dicom 文件转为 nii文件 利用 SimpleITK 库&#xff0c;将 dicom 文件转为 nii文件更完整、丰富的示例项目见 GitHub - AlionSSS/dcm2niix-webui: The web UI for dcm2…

谷歌全力反击 OpenAI:Google I/O 2024 揭晓 AI 新篇章,一场激动人心的技术盛宴

&#x1f680; 谷歌全力反击 OpenAI&#xff1a;Google I/O 2024 揭晓 AI 新篇章&#xff0c;一场激动人心的技术盛宴&#xff01; 在这个人工智能的全新时代&#xff0c;只有谷歌能让你眼前一亮&#xff01;来自全球瞩目的 Google I/O 2024 开发者大会&#xff0c;谷歌用一场…

C++学习一(主要对cin的理解)

#include<iostream> int main() {int sum 0, value 0;//读取数据直到遇到文件尾&#xff0c;计算所有读入的值的和while (std::cin >> value){ //等价于sumsumvaluesum value;}std::cout << "Sum is :" << sum << std::endl;sum …