Shell之高效文本处理命令

2024-05-16 00:52

本文主要是介绍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

这篇关于Shell之高效文本处理命令的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/993412

相关文章

C++高效内存池实现减少动态分配开销的解决方案

《C++高效内存池实现减少动态分配开销的解决方案》C++动态内存分配存在系统调用开销、碎片化和锁竞争等性能问题,内存池通过预分配、分块管理和缓存复用解决这些问题,下面就来了解一下... 目录一、C++内存分配的性能挑战二、内存池技术的核心原理三、主流内存池实现:TCMalloc与Jemalloc1. TCM

Linux脚本(shell)的使用方式

《Linux脚本(shell)的使用方式》:本文主要介绍Linux脚本(shell)的使用方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录概述语法详解数学运算表达式Shell变量变量分类环境变量Shell内部变量自定义变量:定义、赋值自定义变量:引用、修改、删

基于Python实现一个Windows Tree命令工具

《基于Python实现一个WindowsTree命令工具》今天想要在Windows平台的CMD命令终端窗口中使用像Linux下的tree命令,打印一下目录结构层级树,然而还真有tree命令,但是发现... 目录引言实现代码使用说明可用选项示例用法功能特点添加到环境变量方法一:创建批处理文件并添加到PATH1

Python基于微信OCR引擎实现高效图片文字识别

《Python基于微信OCR引擎实现高效图片文字识别》这篇文章主要为大家详细介绍了一款基于微信OCR引擎的图片文字识别桌面应用开发全过程,可以实现从图片拖拽识别到文字提取,感兴趣的小伙伴可以跟随小编一... 目录一、项目概述1.1 开发背景1.2 技术选型1.3 核心优势二、功能详解2.1 核心功能模块2.

基于Python构建一个高效词汇表

《基于Python构建一个高效词汇表》在自然语言处理(NLP)领域,构建高效的词汇表是文本预处理的关键步骤,本文将解析一个使用Python实现的n-gram词频统计工具,感兴趣的可以了解下... 目录一、项目背景与目标1.1 技术需求1.2 核心技术栈二、核心代码解析2.1 数据处理函数2.2 数据处理流程

Java -jar命令如何运行外部依赖JAR包

《Java-jar命令如何运行外部依赖JAR包》在Java应用部署中,java-jar命令是启动可执行JAR包的标准方式,但当应用需要依赖外部JAR文件时,直接使用java-jar会面临类加载困... 目录引言:外部依赖JAR的必要性一、问题本质:类加载机制的限制1. Java -jar的默认行为2. 类加

git stash命令基本用法详解

《gitstash命令基本用法详解》gitstash是Git中一个非常有用的命令,它可以临时保存当前工作区的修改,让你可以切换到其他分支或者处理其他任务,而不需要提交这些还未完成的修改,这篇文章主要... 目录一、基本用法1. 保存当前修改(包括暂存区和工作区的内容)2. 查看保存了哪些 stash3. 恢

Python中bisect_left 函数实现高效插入与有序列表管理

《Python中bisect_left函数实现高效插入与有序列表管理》Python的bisect_left函数通过二分查找高效定位有序列表插入位置,与bisect_right的区别在于处理重复元素时... 目录一、bisect_left 基本介绍1.1 函数定义1.2 核心功能二、bisect_left 与

java -jar命令运行 jar包时运行外部依赖jar包的场景分析

《java-jar命令运行jar包时运行外部依赖jar包的场景分析》:本文主要介绍java-jar命令运行jar包时运行外部依赖jar包的场景分析,本文给大家介绍的非常详细,对大家的学习或工作... 目录Java -jar命令运行 jar包时如何运行外部依赖jar包场景:解决:方法一、启动参数添加: -Xb

Linux基础命令@grep、wc、管道符的使用详解

《Linux基础命令@grep、wc、管道符的使用详解》:本文主要介绍Linux基础命令@grep、wc、管道符的使用,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐... 目录grep概念语法作用演示一演示二演示三,带选项 -nwc概念语法作用wc,不带选项-c,统计字节数-