ubuntu(22.04)--常用命令(2)-awk-sed-find-cut-xargs-grep-curl-tee-wc-sort

news2024/9/23 23:31:26

1.awk



它逐行处理数据,特别适用于从文件中提取特定的数据。例如,您可以使用以下命令从CSV文件中提取数据的第一列:
 

#1.awk 
awk -F ',' '{print $1}' linuxmi.csv
    #指定分割符
    #第一列
    # 待处理文件

  $ awk [options] [file]

#1.打印第2列
 awk ‘{print $2}’ linuxmi.txt

#.打印多列
 awk ‘{print $1,$2,$3}’ linuxmi.txt

#2.匹配字符,正则表达式条件:第2列中是‘历史’ 结果: print $1
awk ‘/历史/{print $2}’ linuxmi.txt


#3.条件:第3列中包含'语' 结果:print $2
awk ‘$3 ~/语/ {print $2}’ linuxmi.txt


条件:第4列大于81  结果:print $2
awk ‘$4>81 {print $2}’ linuxmi.txt


#4.范围: 条件是任意字段的字符
awk ‘/李四/,/陈明/ {print $3}’ linuxmi.txt


#5.逻辑运算符
awk ‘$4>81 && $6>0.4 {print $2}’ linuxmi.txt


#6.
有两个特殊表达式,“ BEGIN”和“ END”:
开始:在处理数据之前执行操作
结束:在处理完数据后执行一项操作
awk ‘BEGIN {print “处理已经开始”}; {print $2}; END {print “处理已结束”}’ linuxmi.txt



7. 内置变量

awk命令具有各种有助于数据处理的变量:

变量说明
NF它给出了数据中字段的数量
NR给出当前记录的编号
FILENAME显示当前正在处理的文件的名称
FS 和 OFS字段分隔符和输出字段分隔符
RS 和 ORS分离记录和输出记录分隔符

awk ‘END{print “文件名是 “, FILENAME, “有”, NF, “个字段和”, NR, “个记录”}’ linuxmi.txt

8、如何更改记录分隔符:

记录中的默认分隔符通常为空格;如果有逗号“,”或点“。”作为字段分隔符,然后将“ FS”选项与分隔符一起使用。

我们再来看一个文件,其中的数据字段之间用逗号“:”隔开:

 awk ‘BEGIN {FS=”:”}{print $2}’ linuxmi.txt

 

 更改分隔符为换行符:  awk ‘BEGIN {RS=”:”}{print $2}’ linuxmi.txt

9. Awk Actions:
Awk Actions是由“{}”括号括起来的小程序,它有多个用分号“;”分隔的语句。
awk ‘{print “Linux迷 www.linuxmi.com,” $2}’ linuxmi.com.txt

awk ‘{sum += $4} END {printf “%d\n”, sum}’ linuxmi.com.txt

 


2.sed

如果您想要在文件中替换所有出现的 "old_text" 为 "new_text" 

sed -i 's/old_text/new_text/g' file.txt

sed -i 's/old_text/new_text/g' file.txt
#-i标志用于原地修改文件
#参数 's/old_text/new_text/g' 是一个正则表达式,指定替换模式
#开头的 s 表示 "substitute"(替换),结尾的 /g 表示 "global"(全局)

一个原始文件

#1.要在文件中输出每个包含“linuxmi”一词的字段:
“ -i”告诉grep命令忽略任何区分大小写的命令
“ -c”输出文件中匹配模式出现次数的计数
 grep -i “linuxmi” linuxmi.txt
 grep -c “linuxmi” linuxmi.txt

#2.特定匹配
 grep “linuxmi” *

#3. -w 仅匹配整个单词
 grep -w “linuxmi” linuxmi.txt

#4.

 Linux中的Grep,Awk,Sed命令 - Linux迷


3.find

 

find命令用于在指定位置搜索文件和目录。它特别适用于基于特定条件查找文件,例如文件类型或修改日期。例如,如果您想要查找当前目录中在过去24小时内修改过的所有文件,则可以使用以下命令:
 

find . -type f -mtime -l

#当前文件夹: .
#类型:    文件 -type f
#时间:    过去的24小时  -l


 

find命令用来精细查找文件或目录。基本语法格式如下:

find  [查找范围]  [查找条件表达式]

find常用的查找条件如下:

  • -name:按名称查找;根据目标文件的名称进行查找,允许使用“*”及“?”通配符;
  • -size:按文件大小查找;一般使用“+”、“-”号设置超过或小于指定的大小作为查找条件。常用的容量单位包括kB(注意k是小写)、MB、GB;
  • -user:按文件属主查找;
  • -type:按文件类型查找;类型指的是普通文件(f)、目录(d)、块设备文件(b)、字符设备文件(c)等。

同时使用多个查找条件时,各表达式之间可以使用逻辑运算符“-a”、“-o”,分别表示而且(and)、或者(or)。



 

#1.查看主目录Linux迷目录下所有*.txt的文件
find ~/Linux迷/ -name *.txt


#2.查看主目录Linux迷目录中所有文件
find ~/Linux迷/ -type f


#3.查看主目录Linux迷目录中所有目录
 find ~/Linux迷/ -type d

#4. 查看主目录Linux迷目录中大于10k的文件 
find ~/Linux迷 -size +10k

#5. 查看主目录Linux迷目录中小于10k的文件
find ~/Linux迷 -size -10k

#6.查看主目录Linux迷目录中大于100M和名字为*.iso的显示出来
 find ~/Linux迷/ -size +100M -a -name *.iso

#7. 查看主目录Linux迷目录中大于100M或者名字为*.iso的显示出来
 find ~/Linux迷/ -size +100M -o -name *.iso

#8. 查找/tmp目录下的所有空目录。
 find /tmp -type d -empty

#9. 查找/tmp目录下的所有空文件
  find /tmp -type f -empty

#10. 查找主目录Linux迷目录下所有可执行文件
  find ~/Linux迷/ -perm /a=x

#11. 查找主目录Linux迷目录下1天范围内被修改的文件
  find ~/Linux迷/ -type f -mtime -1

#12. 查找主目录Linux迷目录下格式为iso并且大小超过100M的文件并删除
  find ~/Linux迷/ -type f -name *.iso -size +100M -exec rm {} \;



4.cut
 

cut 命令用于从文件中提取特定的列或字段。它特别适用于处理分隔符文件,如CSV文件。例如,如果你想从一个CSV文件中提取第一列和第三列数据,可以使用以下命令:

cut -d ',' -f 1,3 file.cs

在这个命令中,cut从名为file.csv的CSV文件中提取第一列和第三列的数据。-d标志指定了文件中使用的分隔符,这里是逗号。-f标志指定要提取哪些字段,这里是第一列和第三列。
 


5.xargs

xargs 命令从标准输入中获取参数并执行命令。这在处理大量文件或目录时特别有用。例如,要删除当前目录中所有扩展名为.txt的文件,可以使用以下命令:

find . -name "*.txt" | xargs rm

在这个例子中,find . -name "*.txt"查找当前目录中所有扩展名为.txt的文件。|字符将find命令的输出导入xargs命令。rm命令删除文件。xargs命令将find命令输出的文件名作为参数传递给rm命令,结果是删除当前目录中所有扩展名为.txt的文件。

https://www.linuxmi.com/linux-tee-xargs.html

6.grep
 

Linux grep 命令高级用法实例 - Linux迷

7.curl

curl -O https://example.com/file.txt命令从由https://example.com/file.txt指定的URL下载文件。-O标志用于使用与远程文件相同的名称保存文件。如果要使用不同的名称保存文件,可以使用-o标志,后跟所需的名称,例如:curl -o local-filename.txt https://example.com/file.txt。


 https://www.linuxmi.com/linux-curl-mingling.html

8.TEE

 

tee命令可以将输出重定向到多个文件或进程。它对于记录输出或创建文件备份非常有用。例如,要将输出重定向到文件和控制台,请使用以下命令:

 

ls | tee file.txt

ls命令列出当前目录中的文件和目录。|字符将ls命令的输出导向到tee命令。tee将ls的输出重定向到控制台和名为file.txt的文件。

要指定输出中使用的分隔符,请使用-t标志,后跟所需的分隔符。例如,-t,将分隔符设置为逗号。-k标志指定要排序的字段。例如,-k 2按第二个字段排序。结果是一个按指定分隔符分隔的排序值列表。

9.WC

wc命令用于计算文件或文件集中的行数、单词数和字符数。它特别适用于分析文本数据。

例如,要计算文件中的行数,请使用以下命令:

 

wc -l file.txt

在这里,wc -l file.txt计算名为file.txt的文件中的行数。-l标志指定只计数行数。结果的行数将输出到控制台。

10.sort

sort命令是一个用于对文件或一组文件内容排序的工具

 sort -t ',' -k 2 file.csv

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

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

相关文章

IPC<进程间通信>之共享内存-源代码在结尾处

一,什么是共享内存 共享内存是进程间通信的一种方式,相较于传统的管道和命名文件的通信方式,shared memory是最快的一种方式,但是他也有一定的缺陷,下面再谈。 共享内存区是最快的IPC形式。一旦这样的内存映射到共享…

从C语言到C++⑤(第二章_类和对象_中篇)(6个默认成员函数+运算符重载+const成员)

目录 0. 引入6个默认成员函数 1. 构造函数(默认成员函数) 1.1 构造函数的概念 1.2 构造函数的特性和用法 1.3 默认构造函数 2. 析构函数(默认成员函数) 2.1 析构函数概念 2.2 析构函数特性 3. 拷贝构造函数(默认成员函…

附录2-购物车案例

目录 1 效果 2 接口数据 3 App.vue 4 HEADER.vue 5 COUNT.vue 6 GOODS.vue 7 FOOTER.vue 1 效果 由四种子组件和一个App.vue构成 2 接口数据 返回结果如下 {"status": 200,"message": "获取购物车列表数据成功!",&q…

idea中的debug操作详解

行断点 默认模式 方法断点 菱形,加在方法前,用的比较多的地方:加在接口前会进入这个接口的实现类。 异常断点 如果说你的程序抛了某个异常,你需要知道在哪里抛出的,可以直接设置异常断点,设置后程序会…

Shell脚本之循环语句(for、while、until)

目录 一、echo命令二 for循环语句三 while循环语句结构(迭代)四. until 循环语句结构五.continue和break和exit 一、echo命令 ?echo -n 表示不换行输出 echo -e 输出转义字符,将转义后的内容输出到屏幕上 常见转义字符: 二 for循环语句 用法…

Baumer工业相机堡盟工业相机如何通过BGAPI SDK设置自动亮度调整BrightnessAuto(自动曝光自动增益)(C++)

自动亮度调整项目场景 Baumer工业相机堡盟相机是一种高性能、高质量的工业相机,可用于各种应用场景,如物体检测、计数和识别、运动分析和图像处理。 Baumer的万兆网相机拥有出色的图像处理性能,可以实时传输高分辨率图像。此外&#xff0…

北斗哨兵北斗短报文远程监控系统解决方案

一、项目背景 随着社会发展各行各业都会遇到各种各样的安全问题,监控系统作为安防的第一线安防设备也已广泛部署,然而地处偏僻的监控区域往往面临着难以提供电力供应以及网络供应的问题,类似于山区环境监测,工地监测等复杂的环境布…

Web自动化测试流程:从入门到精通,帮你成为测试专家

B站首推!2023最详细自动化测试合集,小白皆可掌握,让测试变得简单、快捷、可靠https://www.bilibili.com/video/BV1ua4y1V7Db 目录 摘要: 步骤一:选取测试工具 步骤二:编写测试用例 步骤三:编…

5月4号软件资讯更新合集.....

🚀 Layui 2.8.2 发布 更新日志 table 修复 autoSort: true 时,更改 table.cache 未同步到 data 属性的问题 修复 多级表头存在 hide 表头属性时,执行完整重载可能出现的错位问题 修复 未开启 page 属性时底边框缺失问题 优化 打印内容中…

大型游戏剧本杀小程序app

大型游戏剧本杀小程序的发展趋势主要表现为以下几个方面: 社交互动:未来大型游戏剧本杀小程序将会更加注重社交互动,为用户提供更多的沟通方式和社交场景,以增强玩家间的互动和参与感。 智能化和AR/VR技术应用&#xff1a…

网络基础项目——全网互通实验

作者简介:一名云计算网络运维人员、每天分享网络与运维的技术与干货。 座右铭:低头赶路,敬事如仪 个人主页:网络豆的主页​​​​​​ 前言 本章将会讲解网络基础项目——全网互通实验。 一.实验项目图 二.实验要求 1.全网互通,所有PC机能访问服务器(ping)2.路由器…

DA-Net:用于视网膜血管分割的双分支Transformer和自适应条带上采样

文章目录 DA-Net: Dual Branch Transformer and Adaptive Strip Upsampling for Retinal Vessels Segmentation摘要本文方法整体框架Transformer LayerAdaptive Strip Upsampling Block 实验结果消融实验 DA-Net: Dual Branch Transformer and Adaptive Strip Upsampling for R…

【Python习题集6】类与对象

类与对象 一、实验内容二、实验总结 一、实验内容 1.设计一个Circle类来表示圆,这个类包含圆的半径以及求面积和周长的函数。在使用这个类创建半径为1~10的圆,并计算出相应的面积和周长。 半径为1的圆,面积: 3.14 周长: 6.28 半径为2的圆&am…

【虹科案例】虹科任意波形发生器板卡在声场模拟实验中的应用

声场模拟实验介绍 声场模拟实验是一种通过模拟不同环境下的声场特征来模拟真实世界中声音传输情况的实验方法。通过模拟不同环境下的声场特征,如空间分布、强度、频率等,来模拟真实世界中的声音传输情况,从而对声学相关问题进行研究。 在声…

Java集合框架知识总结

前言 Java集合框架主要由两个接口及其下面的实现类构成,这两个接口分别是Map接口和Collection接口,下面先通过其对应的UML类图看下这两个接口的具体实现,如下 1、Map接口 Map接口的主要实现有我们熟悉的HashMap、HashTable以及TreeMap、Con…

信息技术发展

OSI网络标准协议 物理层:联网的媒介 RS232 FDDI 数据链路层: 网络层接收到的数据分割成可被物理层传输的帧 IEEE802.3/.2 ATM 网络层:网络地址翻译成对应的物理地址,路由 IP ICMP IGMP IPX ARP 传输层:端到端的错误恢复和流量控制…

轻松提升投标技术分?smardaten高性价比原型服务受热捧

日前,某个交通领域的软件公司A遇到了难题,十多个在跟的项目需要在一个月内完成投标准备工作。 应用软件“强甲方需求”的大环境下,A公司又陷“投标高峰期”。 更具挑战性的是,其中,有5个项目要求应标企业提供真实系统的…

一文介绍Linux EAS

能量感知调度(Energy Aware Scheduling,简称EAS)是目前Android手机中Linux线程调度器的基础功能,它使调度器能预测其决策对CPU能耗的影响。依靠CPU的能量模型(Energy Model,简称EM),…

steam搬砖,适合个人操作的创业项目

这个项目主就是在Steam平台买进CSGO道具,再放到网易buff平台卖出。因为进价低出价高,所以每卖出一件道具,利润都相当可观。 关键这玩意背靠Steam这个超大平台,日活几千万,几乎覆盖了市面上的所有热门游戏,…

动态规划——逆序对

逆序对Time Limit: 1000 MSMemory Limit: 5000 KB Description 给定一个长度为N的int型数组a[0,1,2,...N-1], 请计算逆序对个数.当i<j且a[i]>a[j], 则称a[i]与a[j]是一对逆序对.Input 第一行输入M表示包含M组测试数据&#xff0c;每组先输入N (N<50000), 接着输入N…