8种机械键盘轴体对比

本人程序员,要买一个写代码的键盘,请问红轴和茶轴怎么选?

查找目录下的所有文件中是否含有某个字符串

find .|xargs grep -ri "IBM"

查找目录下的所有文件中是否含有某个字符串,并且只打印出文件名

find .|xargs grep -ri "IBM" -l

linux 查找某目录下包含关键字内容的文件grep -r "{关键字}" {路径}

例如:

grep -r "test" /data/reports

对find,xargs,grep和管道的一些深入理解

相信大家都知道在目录中搜索含有固定字符串文件的命令:find . -name '*.py' |xargs grep test

刚开始的时候,我不熟悉xargs命令,所以直接使用的命令是find . -name '*.py' |grep test

结果并不是自己所期望的。此命令只是找出文件名*.txt有test的情况。

这里我就研究一下,究竟xargs做了什么,使得结果不相同。

参数与标准输入

这两个词我们在Linux命令中是很常见的。但是参数和标准输入其实是有区别的。我们日常使用的很多命令,例如ls -lah .中。l, a, h ,都是命令ls的参数。至于标准输入,可以说它某种流数据。而通常来讲标准输入的流数据来源就是我们的终端输入。在Linux命令中,有些命令可以接收标准输入,有些是不能的。像上面的ls,就是只能接收参数,不能接收标准输入。像cat命令或echo命令,这些是可以的。

怎么分辨一个命令可不可以接收标准输入?很简单,当你敲完命令回车后,终端会等待接收你的输入,例如当你在终端输入cat后,终端会等待你输入字符,当你输入一些字符后,然后按Ctrl-C发送终止符号。这时cat命令接收标准输入完毕,执行命令,也就是将刚才键入的内容输出的标准输出上(屏幕)。

管道

管道的作用是将前面命令的标准输出作为后面命令的标准输入。这里要注意,后面的命令接收的是标准输入,所以如果命令不支持接收标准输入,那么就不能直接使用管道,例如常用的ls命令,只能使用参数,而不能使用标准输入,所以[command] | ls是不能使用的。而命令如echo或cat就可以。那么肯定有方法来实现这些不能使用标准输入的命令与管道结合,这时候xargs便出场了。

xargs命令

xargs命令通俗来讲就是将标准输入转成各种格式化的参数,所以命令[command 1] | xargs [command 2]就是将command 1的标准输出结果,通过管道|变成xargs的标准输入,然后xargs再将此标准输入变成参数,传给[command 2]。这样一来,通过xargs命令,我们便可以在管道后面使用那些不接收标准输入的命令了。例如[command 1]|xargs ls,是不是很熟悉?

find与grep

我们首先来查看grep手册。通过man grep命令。grep searches the named input FILEs (or standard input if no files are named, or if a single hyphen-minus (-) is given as file name) for lines containing a match to the given PATTERN. By default, grep prints the matching lines

那么对于第一个命令find . -name '*.py' |grep test,是将前面命令的标准输出作为标准输入传给了grep test,那么grep是从这些标准输入寻找test字符,也就是文件名组成的字符流, 最终选择出的是这些文件名。

对于第二个命令find . -name '*.py' |xargs grep test,通过xargs,find得到的文件名成为了参数传给后面的grep,那么这时候这些文件名就是实实在在的文件标识,grep接收后会按正常的使用方式在各文件中搜寻字符串。

参考:https://www.baidu.com/link?url=ViL8A5oAhPKpqoK14dedk0pJuvXoH8ok2eHf6-cZJmRaTMYqLuzjR3eS14oCLtothy1RnbqLwtBnz4aTAfB17q&wd=&eqid=fa94666f0002d501000000035b6ce3d0

grep 参数-a 不要忽略二进制数据。

-A 除了显示符合范本样式的那一行之外,并显示该行之后的内容。

-b 在显示符合范本样式的那一行之外,并显示该行之前的内容。

-c 计算符合范本样式的列数。

-C或- 除了显示符合范本样式的那一列之外,并显示该列之前后的内容。

-d 当指定要查找的是目录而非文件时,必须使用这项参数,否则grep命令将回报信息并停止动作。

-e 指定字符串作为查找文件内容的范本样式。

-E 将范本样式为延伸的普通表示法来使用,意味着使用能使用扩展正则表达式。

-f 指定范本文件,其内容有一个或多个范本样式,让grep查找符合范本条件的文件内容,格式为每一列的范本样式。

-F 将范本样式视为固定字符串的列表。

-G 将范本样式视为普通的表示法来使用。

-h 在显示符合范本样式的那一列之前,不标示该列所属的文件名称。

-H 在显示符合范本样式的那一列之前,标示该列的文件名称。

-i 忽略字符大小写的差别。

-l 列出文件内容符合指定的范本样式的文件名称。

-L 列出文件内容不符合指定的范本样式的文件名称。

-n 在显示符合范本样式的那一列之前,标示出该列的编号。

-q 不显示任何信息。

-R/-r 此参数的效果和指定“-d recurse”参数相同。

-s 不显示错误信息。

-v 反转查找。

-w 只显示全字符合的列。

-x 只显示全列符合的列。

-y 此参数效果跟“-i”相同。

-o 只输出文件中匹配到的部分。

查找并替换

sed

grep -rl matchstring somedir/ | xargs sed -i 's/string1/string2/g' 例如: grep -rl 'windows' ./path | xargs sed -i 's/windows/linux/g'

linux在文件夹下查找关键字,linux 查询目录下包含关键字的所有文件相关推荐

  1. java批量提取文件夹名称_bat 批量提取指定目录下的文件名

    bat 批量提取指定目录下的文件名 下面是批量获取指定目录下的文件名的核心代码 @echo off echo text input set input= set /p input=: echo %in ...

  2. linux 解压zip 空格,如何在linux系统下对文件夹名有空格的文件夹进行操作,linux空格...

    如何在linux系统下对文件夹名有空格的文件夹进行操作,linux空格 在Windows操作系统中可以轻易地创建\移动\删除文件夹名带有空格的文件夹, 而在linux则需要进行一些特殊的处理才能实现以 ...

  3. linux rz 上传文件夹_第二章Linux服务器环境搭建之Tomcat安装

    一.下载tomcat安装包 官网下载地址: http://tomcat.apache.org/download-80.cgi 我下载的版本是tomcat 9,具体下载那个版本需要根据自己的需要进行选择 ...

  4. linux文件夹加密访问,技术|Linux系统上用encfs创建和管理加密文件夹

    如果你想使你计算机上的某些信息免于被窥视的话,可以看看这篇文字.保护信息的一种方法就是加密你的home目录,但是一旦你登录系统后,你的home目录下的信息将暴露于外.过去,我已经写过关于怎样在你的系统 ...

  5. linux赋予文件夹所有权限_linux – 如何将某些用户权限仅授予子文件夹

    我在我的服务器上拥有root权限,并且我想为特定组和用户授予权限.有一种情况,有目录树: dir1 ├── subdir1 ├── subdir2 ├── subdir3 我有三个用户(user1,u ...

  6. linux键盘设置的文件在哪个文件夹,「正点原子Linux连载」第十五章按键输入试验...

    原标题:「正点原子Linux连载」第十五章按键输入试验 第十五章按键输入试验 前面几章试验都是讲解如何使用I.MX6U的GPIO输出控制功能,I.MX6U的IO不仅能作为输出,而且也可以作为输入.I. ...

  7. linux修改文件夹的访问权限,linux setfacl chmod g+s 修改文件夹和文件的默认访问权限和所属组...

    linux setfacl chmod g+s 修改文件夹和文件的默认访问权限和所属组 我们在创建一个文件夹或者一个文件的时候,希望集成父文件夹的访问权限和组 修改默认访问权限 setfacl 以及 ...

  8. linux mysql 文件夹权限_找到linux文件夹

    FineReport关于Linux下字体乱码终极解决方案 1:在windows下找到系统使用到的字体,这里以楷体举例 •到c盘的windows文件夹的Fonts文件夹里面存放了windows中用到的所 ...

  9. 在linux上备份文件夹在哪里找,Linux 备份 文件夹的权限 然后在其他机器进行恢复...

    Study From https://www.cnblogs.com/chenshoubiao/p/4780987.html 用到的命令 getfacl 和 setfacl 备份 getfacl -R ...

  10. linux同步某台服务器,linux 两台服务器之间开机自动同步指定目录下的文件

    linux 两台服务器之间开机自动同步指定目录下的文件 服务器B(172.17.166.11)上开机或者重启会自动拉取服务器A(172.17.166.10)上指定目录下所有文件 1.创建服务器B到服务 ...

最新文章

  1. 前端开发之JavaScript基础篇一
  2. R语言使用ggplot2包和ggQC包可视化帕累托图(Pareto chart)
  3. java采集温湿度水浸_机房水浸传感器:智能生活不可或缺的漏水传感器
  4. 用户 'IIS APPPOOL\***' 登录失败(转载)
  5. 第四期《Summer Tree》 已经整理完毕
  6. 使用html() undefined_SweetAlert2使用教程
  7. No New-Net
  8. Microsoft Visual Studio Team Foundation Server Express 2013 (一) 服务器端安装和配置
  9. MySQL学习(二、简单查询和多行、单行函数)
  10. Python 源代码代码打包成 whl 文件
  11. C语言扑克牌洗牌发牌代码
  12. 建立stm32工程模板及Keil设置(二)
  13. Docker 与 K8S学习笔记(二十)—— 使用Downward API向容器注入Pod信息
  14. linux命令详解--pmap
  15. QTP10破解方法及mgn-mqt82.exe下载
  16. R语言 提取数据中的任意子集
  17. python单用户登录_Python 实现用户登录的简单方法
  18. 一款方便好用的免费截图神器
  19. oracle dump 文件解析,Oracle 常用的dump(Memory Dumps/File Dumps/Trace 文件使用示例)
  20. C--if else嵌套几种形式总结--不要忘记括号了,养成只要if大括号的习惯

热门文章

  1. 初学Andorid前沿
  2. Batocera(巴托塞拉)技巧记录集合
  3. freeradius-aka配置笔记,自用
  4. 利用计算机窃听,神奇 | 以色列研究人员实现利用计算机风扇噪音窃听
  5. bgp云主机是什么意思
  6. 2021人机交互的软件工程方法期末考试回忆
  7. KDC服务安装及配置
  8. 爬虫入门——用python爬取网易云音乐热门歌手评论数
  9. 【硬件】显示器显示超出工作频率范围
  10. Spring——Bean管理-xml方式进行属性注入