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

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

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值