linux 查看文件/grep字符串匹配命令

本文介绍了Linux中几个重要的文本处理命令,如cat用于查看和合并文件,more和less提供分页显示文件内容,grep则用于在文件中搜索特定模式,wc则用于统计文件的行数、单词数和字符数。这些命令结合正则表达式,能有效管理和分析文本数据。
摘要由CSDN通过智能技术生成

cat

用于连接文件并打印到标准输出。可以用 cat 命令将多个文件合并成一个文件,也可以用它来查看单个文件的内容。常用的选项包括 -n(显示行号)和 -b(显示非空行号),例如 cat -n file.txt 可以显示文件的内容,并在每行开头显示行号。

cat -n file.txt //显示文件的内容,并在每行开头显示行号
cat file1.txt file2.txt //连接查看file1和file2文件内容
cat file1.txt file2.txt > merged.txt 
//连接查看file1和file2文件内容并重定向到merge.txt

more

用于分页显示文本文件的内容,每次显示一页,支持向下翻页、向上翻页、前进和退出等操作。常用的命令包括空格(向下翻页)回车键(向下滚动一行)q(退出)b或者上箭头(↑)键向上翻页

less

与 more 类似,也是用于分页显示文本文件的内容,但支持更多的操作和选项。常用的命令包括空格(向下翻页)、b(向上翻页)、g(跳到文件开头)、G(跳到文件结尾)、/(搜索文本)等。相比于 more,less 支持更多的操作,且可以进行反向搜索和高亮显示等功能。

grep

是一种用于在文本文件中搜索指定模式的 Linux 命令。grep 命令通常用于查找文件中包含某个字符串的行或者匹配某个正则表达式的行。它可以搜索一个或多个文件,也可以从标准输入中读取数据并进行搜索。

常用的 grep 选项包括:

  • -i:忽略大小写
  • -v:只显示不匹配的行
  • -n:显示匹配行的行号
  • -l:只显示包含匹配行的文件名
  • -c:只显示匹配行的计数
  • -r:递归搜索子目录中的文件
  • -E:使用扩展的正则表达式语法
  • -w:只匹配整个单词,而不是单词的一部分
  • -A:(after)显示匹配后几行
  • -B:(before)显示匹配前几行

用例

grep [选项] 模式 [文件名...]

grep "error" /var/log/messages
//在/var/log/messages 中查找包含字符串 "error" 的行

grep -v "error" /var/log/messages
//在/var/log/messages 中查找不包含字符串 "error" 的行

grep -n -A 10 -B 10 "error" /path/to/logfile
//查看日志中 error 信息前后十行内容

cat file.txt | grep pattern
//可以使用管道符 | 将多个命令连接起来,使它们的输出和输入进行流式处理。
//因此,可以使用 cat 命令读取文件内容,并将其通过管道传递给 grep 命令进行字符串匹配。

wc

是 Linux 中的一个命令,用于统计文件中的行数、单词数和字符数等信息。

wc 命令的常用选项包括:

  • -l:统计文件中的行数。
  • -w:统计文件中的单词数。
  • -c:统计文件中的字符数。
  • -m:统计文件中的字符数,包括换行符。

正则表达式

grep可以搭配正则表达式使用

  • .:匹配任意一个字符,但不包括换行符。
  • ^:匹配行首,在多行模式下匹配每行的开头。
  • $:匹配行尾,在多行模式下匹配每行的结尾。
  • *:匹配前面的字符0次或多次。
  • +:匹配前面的字符1次或多次。
  • ?:匹配前面的字符0次或1次。
  • {m}:匹配前面的字符恰好m次。
  • {m,n}:匹配前面的字符至少m次,至多n次。
  • []:匹配方括号内的任意一个字符。
  • |:匹配左右两边任意一个表达式。
  • \:转义字符,用于匹配特殊字符本身。
grep -E '^(hello|world)' file.txt
//在 file.txt 文件中查找所有最前面包含 "hello" 或者 "world" 的行

grep -E '\b(25[0-5]|2[0-4][0-9]|[1-9][0-9]{0,1}|1[0-9]{2}
|0)\.(25[0-5]|2[0-4][0-9]|[1-9][0-9]{0,1}|1[0-9]{2}
|0)\.(25[0-5]|2[0-4][0-9]|[1-9][0-9]{0,1}|1[0-9]{2}
|0)\.(25[0-5]|2[0-4][0-9]|[1-9][0-9]{0,1}|1[0-9]{2}
|0)\b' test.txt

//匹配test.txt中包含Ipv4地址的行,不含前导零
//25[0-5]:250-255
//2[0-4][0-9]:200-249 
//1[0-9]{2}:100-199
//[1-9][0-9]{0,1}:1-99
//0:0
//\.:'.'转义 \b:匹配单词边界


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值