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