Linux find grep cat xargs命令学习

本文深入解析Linux中的find、grep、xargs、cat、head、tail、sed命令,提供实用技巧和高级应用案例,助您高效管理文件和数据。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Linux find grep cat xargs命令学习

一、find

1、基本命令
find . -name "*.txt"
find . -name "*.txt" -print

解释:

  • 显示当前目录下名称匹配*.txt的文件,并打印出到控制台
  • [.] 表示在当前目录以及子目录中查询;
  • [-name] 表示通过文件名进行查询,还有各种其他的参数,例如 -size -type 等等
  • [“*.txt”] 表示查询条件,支持正则表达是
2、find命令的其他参数
  • -type 按照文件类型查找 b/d/c/p/l/f 设备、目录、字符设备、管道、符号链接、普通文件
  • -size 按照文件大小查找,例如:find -size +1000c 查找大于1K的文件
  • -empty 查找为空的文件或者文件夹
  • -exec 对匹配到的文件,执行命令
    • 基本用法:-exec 命令 {} \;
    • 例如:查找文件,并显示文件列表:-exec ls -l {} \;
  • -ok 和-exec一样,只是执行命令前会询问用户

二、grep

global search regular expression(RE) and print out the line,全面搜索正则表达式并把行打印出来
基本用法:grep -n 'www' log1.txt

在log1.txt文件中,查找www,并打印行号

选项:
  • -a :将 binary 文件以 text 文件的方式搜寻数据
  • -c :计算找到 ‘搜寻字符串’ 的次数
  • -i :忽略大小写的不同,所以大小写视为相同
  • -n :顺便输出行号
  • -v :反向选择,亦即显示出没有 ‘搜寻字符串’ 内容的那一行!
  • –color=auto :可以将找到的关键词部分加上颜色的显示喔!

三、xargs

组合多个命令,并传递参数

选项:
  • xargs的默认命令是echo,例如:ls -l | xargs
  • -p选项:交互式提问y来确认命令的每次执行
  • -t 在执行前回显各个command
  • -n 限制每次传递进来参数的个数

四、cat

cat命令三大功能
  • 一次显示整个文件。$ cat filename
  • 从键盘创建一个文件。$ cat > filename
  • 将几个文件合并为一个文件: $cat file1 file2 > file
选项
  • -n 或 –number 由 1 开始对所有输出的行数编号
  • -b 或 –number-nonblank 和 -n 相似,只不过对于空白行不编号
  • -s 或 –squeeze-blank 当遇到有连续两行以上的空白行,就代换为一行的空白行
  • -v 或 –show-nonprinting
例子

把 textfile1 的档案内容加上行号后输入 textfile2 这个档案里
cat -n textfile1 > textfile2

把 textfile1 和 textfile2 的档案内容加上行号(空白行不加)之后将内容附加到 textfile3 里。
cat -b textfile1 textfile2 >> textfile3

注意:>是创建文件,>>是追加内容

五、head、tail 、sed

head 查看文件开头部分
  • -q 隐藏文件名
  • -v 显示文件名
  • -c<字节> 显示字节数
  • -n<行数> 显示的行数
head -n 5 log2014.log
head -c * log2014.log
tail 查看文件结尾部分

用于显示指定文件末尾内容,不指定文件时,作为输入信息进行处理。常用查看日志文件

  • -f 循环读取
  • -q 不显示处理信息
  • -v 显示详细的处理信息
  • -c<数目> 显示的字节数
  • -n<行数> 显示行数
  • –pid=PID 与-f合用,表示在进程ID,PID死掉之后结束.
  • -q, –quiet, –silent 从不输出给出文件名的首部
  • -s, –sleep-interval=S 与-f合用,表示在每次反复的间隔休眠S秒
tail -n 5 log2014.log -- 显示文件最后5行内容
tail -f test.log -- 循环显示文件末尾内容
tail -n +5 log2014.log -- 从第5行开始显示文件
sed

sed -n '3p' datafile – 只打印第三行
sed -n '100,200p' mysql_slow_query.log 只查看文件的第100行到第200行

参考:
http://www.cnblogs.com/emanlee/archive/2013/09/07/3307642.html

### Shell 中 `find`、`grep`、`sed` 和 `xargs` 命令详解 #### 使用 `find` 查找文件 `find` 是一个强大的命令,用于在目录层次结构中搜索文件和目录。可以基于名称、类型、权限等多种条件来查找。 例如,在 `/etc` 目录下查找名为 `passwd` 的文件并执行特定操作: ```bash $ find /etc -name "passwd" -exec grep "itcast" {} \; ``` 这条指令会找到所有名字为 `passwd` 的文件,并检查其中是否含有字符串 `"itcast"`[^2]。 #### 利用 `grep` 进行模式匹配 `grep` 工具用来在一个或多个文件里搜索指定的字符序列(即正则表达式)。它能够高效地处理文本数据,支持多种选项以增强功能。 比如要忽略大小写差异显示包含某些关键词的行及其编号,则可这样调用: ```bash $ grep -i -n "pattern" *.{py,txt,sh} ``` 这里 `-i` 表示不区分大小写字母,而 `-n` 参数使得每条输出前加上对应的行数[^3]。 #### 应用 `sed` 编辑流 `sed` 被称为流编辑器,允许用户对输入流(通常是来自管道的数据)应用一系列编辑命令。常见的用途包括替换文本中的单词或其他内容。 假设有一个脚本需要修改内部所有的旧版本号为新版本号,那么可以用下面的方式实现批量更新: ```bash $ sed 's/old_version/new_version/g' script.sh > updated_script.sh ``` 此命令将在整个文档范围内全局(`g`)替换成新的版本信息[^4]。 #### 结合 `xargs` 提高效率 当与其他程序一起工作时,`xargs` 可以接收标准输入作为参数传递给其他命令。这有助于构建更复杂的自动化流程。 考虑这样一个场景:有一系列路径保存于文件内,现在希望依次读取每一项并通过另一个 shell 脚本来进一步加工它们: ```bash $ cat args.txt | xargs -I {} sh cecho.sh -p {} -1 -p arg1 -1# -p arg2 -1# -p arg3 -1# ``` 上述例子展示了如何利用 `{}` 占位符代表当前传入的具体项目,并将其嵌入到后续待运行的命令串之中[^1]。 通过组合以上四个工具,可以在 Linux 或 Unix 类操作系统上完成许多复杂而又高效的文本处理任务。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值