高效搜索:使用Linux grep命令进行.sh文件操作 (linux grep .sh)

在Linux系统中,Shell脚本文件(.sh文件)是一种重要的脚本文件类型。在进行Shell脚本编程或者Shell脚本维护、调试过程中,需要对Shell脚本文件进行快速、高效的搜索、匹配、替换等相应操作。在这种情况下,Linux grep命令是一种非常实用、高效的工具。本文将介绍如何使用Linux grep命令进行Shell脚本文件操作,从而提高工作效率和代码质量。

一、grep命令的概述

grep是一种常见的Linux操作系统命令,全称是“global regular expression print”(全局正则表达式打印)。在Linux系统中,grep命令通常用于在文件中查找符合特定模式的行,并输出匹配结果。grep命令的语法如下:

grep [选项] 模式 文件

其中,“选项”是可选的,用于指定grep命令的详细处理方式;“模式”是必选的,用于指定希望查找的文本模式;“文件”是必选的,用于指定希望查找的文件名。

二、使用grep命令进行Shell脚本文件操作

对于Shell脚本文件操作,grep命令可以用于以下几个方面:

1.查找包含关键字的Shell脚本文件

在Shell脚本文件中,有时需要查找包含某个关键字的文件。可以使用grep命令来查找包含关键字的Shell脚本文件,如下所示:

grep -r “关键字” *.sh

其中,“-r”选项表示递归地查找指定目录下的所有文件;“*.sh”表示查找所有后缀名为.sh的Shell脚本文件;“关键字”表示需要查找的关键字。执行上述命令后,grep会在当前目录及其所有子目录中查找所有后缀名为.sh的Shell脚本文件,并输出包含关键字的文件名和匹配位置。

2.查找不包含关键字的Shell脚本文件

有时需要查找不包含某个关键字的Shell脚本文件。可以使用grep命令来查找不包含关键字的Shell脚本文件,如下所示:

grep -rL “关键字” *.sh

其中,“-r”选项表示递归地查找指定目录下的所有文件;“*.sh”表示查找所有后缀名为.sh的Shell脚本文件;“关键字”表示需要查找的关键字。“-L”选项表示输出不包含关键字的文件名。执行上述命令后,grep会在当前目录及其所有子目录中查找所有后缀名为.sh的Shell脚本文件,并输出不包含关键字的文件名。

3.查找匹配指定模式的Shell脚本文件

有时需要查找匹配指定模式的Shell脚本文件。可以使用grep命令来查找匹配指定模式的Shell脚本文件,如下所示:

grep -r “模式” *.sh

其中,“-r”选项表示递归地查找指定目录下的所有文件;“*.sh”表示查找所有后缀名为.sh的Shell脚本文件;“模式”表示需要查找的模式。执行上述命令后,grep会在当前目录及其所有子目录中查找所有后缀名为.sh的Shell脚本文件,并输出匹配指定模式的文件名和匹配位置。

4.查找不匹配指定模式的Shell脚本文件

有时需要查找不匹配指定模式的Shell脚本文件。可以使用grep命令来查找不匹配指定模式的Shell脚本文件,如下所示:

grep -rL “模式” *.sh

其中,“-r”选项表示递归地查找指定目录下的所有文件;“*.sh”表示查找所有后缀名为.sh的Shell脚本文件;“模式”表示需要查找的模式。“-L”选项表示输出不匹配指定模式的文件名。执行上述命令后,grep会在当前目录及其所有子目录中查找所有后缀名为.sh的Shell脚本文件,并输出不匹配指定模式的文件名。

5.在目录中查找特定数量的匹配结果

有时需要查找限定数量的匹配结果。可以使用grep命令来在目录中查找特定数量的匹配结果,如下所示:

grep -r “关键字” *.sh | head -nN

其中,“-r”选项表示递归地查找指定目录下的所有文件;“*.sh”表示查找所有后缀名为.sh的Shell脚本文件;“关键字”表示需要查找的关键字。“head -nN”表示输出前N行结果。执行上述命令后,grep会在当前目录及其所有子目录中查找所有后缀名为.sh的Shell脚本文件,并输出前N行匹配结果。

6.查找具有特定权限的Shell脚本文件

有时需要查找具有特定权限的Shell脚本文件。可以使用grep命令来查找具有特定权限的Shell脚本文件,如下所示:

ls -l *.sh | grep “权限”

其中,“ls -l”命令表示列出当前目录下所有文件及其详细权限;“*.sh”表示查找所有后缀名为.sh的Shell脚本文件;“权限”表示需要查找的特定权限。执行上述命令后,grep会在当前目录中查找所有后缀名为.sh的Shell脚本文件,并输出具有特定权限的文件名和权限信息。

三、

使用Linux grep命令进行Shell脚本文件操作,能够大大提高工作效率和代码质量。使用grep命令可以快速、高效地进行Shell脚本文件的搜索、匹配、替换等相关操作。在使用grep命令时,需要了解grep命令的基本语法和相关选项,根据不同的需求进行命令的组合和调用。通过熟练掌握Linux grep命令,可以轻松实现Shell脚本文件操作的各种需求,提高工作效率和代码质量。

相关问题拓展阅读:

linux中grep命令的使用

标准的写法是

ps aux|grep 2567|grep -v grep

1、linux系统中grep命令是一种强大的文本搜索工具,它能使用正则表达式搜索滚派文本,并把匹配的行打印出来。grep全称是Global Regular Expression Print,表示全局正则表达式版本,它的使用权限是所有用户。

2、格式

grep

3、主要参数

主要参数:

-c:只输出匹配行的计数。

-I:不区分大小写(只适用于单字符)。

-h:查询多文件时不显示文件名。

-l:查询多文件时只输出包含匹配字符的文件名。

-n:显示匹配行及行号。

-s:不显示不存在或无匹配文本的错误信息。

-v:显示不包含匹配文本的所有行。

pattern正则表达式主要参数:

\:忽略正则表达式中特殊字符的原有含义。

^:匹配正则大手贺表达式的开始行。

$: 匹配正则表达式的结束行。

\:到匹配正则表达式的行结束。

:单个字符,如即A符合要求。

:范围,如,即A、B、C一直到Z都符合要求。

。:所有的单个字符。

* :有字符,长度可以为0。

4、grep命令使用简单实例:

$ grep ‘test’d*

显示所有以d开头的文件中包含test的行。

$ grep ‘test’aa bb cc

显示在aa,bb,cc文件中匹配test的行。

$ grep‘\{5\}’ aa

显示所有包含每个字符串至少有5个连续小写字符的字符串的行。

写错了。用grep 2567,grep不用=号的。

推荐awk

ps -aux |awk ‘$2~/32651/’

过滤可以用ps -aux |awk ‘$2!~/32651/’

grep 2567会显示出现2567这个字符串的所有行,你如果宏陪山每行都有PID,还要体现它干什么呢。

grep 是不会自动识别PID这些字段的,用=肯定没用,它不过是文字处理的最乱贺简单的模式识别程序而已。awk和sed比grep强大多了,蔽中在讲unix的书上grep一般是略带提的,但awk和sed就会着重讲。

grep

关键字

*

Linux中使用grep命令搜索文件名及文件内容的方法

从文件中搜索并显示缺高文件名

  当你从不止一个的文件中搜索时,默认它将显示文件名:

  代码如下:

  grep

word

文件名

  grep

root

/etc/*

  示例输出:

  代码如下:

  /etc/bash.bashrc:

See

man

sudo_root

for

details.

  /etc/crontab:17

*

*

*

*

root

cd

/

run-parts

–report

/etc/cron.hourly

  /etc/crontab:25

*

*

*

root

test

-x

/usr/in/anacron

||

(

cd

/

run-parts

–report

/etc/cron.daily

)

  /etc/crontab:47

*

*

root

test

-x

/usr/in/anacron

||

(

cd

/

run-parts

–report

/etc/cron.weekly

)

  /etc/group:root:x:0:

  grep:

/etc/gshadow:

Permission

denied

  /etc/logrotate.conf:

create

0664

root

utmp

  /etc/logrotate.conf:

create

0660

root

utmp

  每行开始的之一个部分是文件名(如:/etc/crontab、/etc/group)。使用

-l

选项可以只显示文件名:

  代码如下:

  grep

-l

string

filename

  grep

-l

root

/etc/*

  示例输出:

  代码如下:

  /etc/aliases

  /etc/arpwatch.conf

  grep:

/etc/at.deny:

Permission

denied

  /etc/bash.bashrc

  /etc/bash_completion

  /etc/ca-certificates.conf

  /etc/crontab

  /etc/group

  你也可以逆转输出;使用

-L

选项来输出禅物那些不匹配的文件的文件名:

  代码如下:

  grep

-L

word

filename

  grep

-L

root

/etc/*

  示例输出:

  代码如下:

  /etc/apm

  /etc/apparmor

  /etc/apparmor.d

  /etc/apport

  /etc/apt

  /etc/avahi

  /etc/bash_completion.d

  /etc/bindresvport.blacklist

  /etc/blkid.conf

  /etc/bluetooth

  /etc/bogofilter.cf

  /etc/bonobo-activation

  /etc/brlapi.key

  根据文件内容查找文件

  输入以下命令:

  代码如下:

  grep

‘string’

*.txt

  grep

‘main(‘

*.c

  grep

‘#include’

*.c

  grep

‘getChar*’

*.c

  grep

-i

‘ultra’

*.conf

  grep

-iR

‘ultra’

*.conf

  其中

  -i

忽略模式(匹配字符串

valid、

VALID、

ValID

)和输入文件(匹配

file.c

FILE.c

FILE.C)的大小写。

  -R

递归读取每个目录下的所有文件。

  高亮匹配到的模式

  在搜索大量文件的时候你可以轻松地高亮模式:

  代码如下:

  $

grep

–color=auto

-iR

‘getChar();’

*.c

  为查找到的模式显示文件名和行号

  你也许需要显示文件名和行号:

  代码如下:

  $

grep

–color=auto

-iRnH

‘getChar();’

*.c

  其中,

  -n

在输出的每行前面添加以

开始的行号。

  -H

为每个匹配打印文贺扮液件名。要搜索多个文件时这是默认选项。(LCTT

译注:-h

选项强制隐藏文件名;另外

-l

-L

选项用于仅显示匹配/不匹配的文件名,而

-H

-h用于控制在显示匹配行前显示/不显示文件名,注意区分。)

  代码如下:

  $grep

–color=auto

-nH

‘DIR’

*

  输出样例:

  你也可以使用

find

命令:

  代码如下:

  $

find

.

-name

*.c

-print

|

xargs

grep

main(

Linux 高级命令

echo “HelloWorld”

向控制台输出HelloWorld信息

Linux允许将命令执行结果重定向到一个文件,本应显示在终端上丛卜笑的内容保存到指定文件中。

ls > test.txt

test.txt 如果不存在,则创建,存在则覆盖其内容

注意: > 输出重定向会覆盖原来的内容, >> 输出重定向则会追加到文件的尾部

cat .py 可以用来快速查看某个文件内容,输出到控制台

cat test.txt >> haha.txt 将test.txt的内容追加到haha.txt中

cat 1.txt 2.txt > 1_2.txt 将1.txt 2.txt内容合并到1_2.txt中

分屏显示:more

查看内容时,在信息过长无法在一屏上显示时,会出现弊差快速滚屏,使得用户无法看清文件的内容,此时可以使用more命令,从头开始,每次只显示一页,空格键显示下一页,b键上一页,按下q键退出显示,按下h键可以获取帮助。

more .py

管道:一个命令的输出可以通过管道做为另一个命令的输入。

管道我们可以理解现实生活中的管子,管子的一头塞东西进去,另一头取出来,这里“ | ”的左右分为两端,左端塞东西(写),右端取东西(读)。即管道左边的输出结果作为管道右侧的参数

cat info.txt | more

tree | more

::: warning

more管道符读到的内容只能前进,不能后退;只能使用空格或回车向下看,不能使用b回看

:::

Linux链接文件类似于Windows下的快捷方式。

链接文件分为软链接和硬链接。

ln -s 源文件 链接文件

ln 源文件 链接文件

没有-s 选项代表建立一个硬链接文件,两个文件占用相同大小的硬盘空间,即使删除了源文件,链接文件还是存在,一般用于保护系统重要的文件。所以-s选项是更常见的形式。

::: warning 注意

如果软链接文件和源文件不在同一个目录,源文件要使用绝对路径,不能使用相对路径。

:::

find命令功能非常强大,通常用来在特定的目录下搜索符合条件的文件,也可以用来搜索特定用户属主的文件。

常用用法:

Linux系统中grep命令是一种强大的文本搜索工具,grep允许对文本文件进行模式查找。如果找到匹配模式, grep打印包含模式的所有行。

grep一般格式为:

在grep命令中输入字符串参数时,更好用引号或双引号括起来。

例如:

从某个文件搜索

搜索当前目录所有文件

常用选项说明:**

grep搜索内容串可以是正则表达式。

正则表达式是对字符串操作的一种逻辑公式,就是用事先定义好的一些特定字符、及这些特定字符的组合,组成一个“规则字符串”,这个“规则字符串”用来表达对字符串的一种过滤逻辑。

grep常用正则表达式:

计算机中的数据经渗含常需要备份,tar是Unix/Linux中最常用的备份工具,此命令可以把一系列文件归档到一个大文件中,也可以把档案文件解开以恢复数据。

tar使用格式:

tar 打包文件名 文件

tar命令很特殊,其参数前面可以使用“-”,也可以不使用。

常用参数:

注意:除了f需要放在参数的最后,其它参数的顺序任意。

常用命令:

tar与gzip命令结合使用实现文件打包、压缩。 tar只负责打包文件,但不压缩,用gzip压缩tar打包后的文件,其扩展名一般用x.tar.gz。也会见到缩写的.tgz这种扩展名。

gzip使用格式如下:

常用选项:

tar这个命令并没有压缩的功能,它只是一个打包的命令,但是在tar命令中增加一个选项 -z 可以调用gzip实现压缩的功能,最终实行一个先打包后压缩的过程。

-z :指定压缩包的格式为 .tar.gz

tar压缩:

tar zcvf .tar.gz 文件1 文件2 …

tar解压:

tar zxvf .tar.gz

解压到指定目录:

tar zxvf .tar.gz -C target_dir/ (大写字母“C”)

tar与bzip2命令结合使用实现文件打包、压缩(用法和gzip一样)。

tar只负责打包文件,但不压缩,用bzip2压缩tar打包后的文件,其扩展名一般用x.tar.bz2。

在tar命令中增加一个选项(-j)可以调用bzip2实现了一个压缩的功能,实行一个先打包后压缩的过程。

压缩用法

: tar -jcvf 压缩包包名 文件1 文件2… (例: tar jcvf bak.tar.bz2 *.c )

解压用法

: tar -jxvf 压缩包包名 (例: tar jxvf bak.tar.bz2 )

通过zip压缩文件的目标文件不需要指定扩展名,默认扩展名为zip。

压缩文件

:zip 目标文件(没有扩展名) 源文件

解压文件

:unzip -d 解压后目录文件 压缩文件

使用tree命令可以查看指定目录的树状结构

有时我们想知道被执行的命令在哪个目录,以方便切换或更新不同版本,如Python。可以使用 which 命令

文件内容为:123 aaa bbb哈

执行 echo “123 aaa bbb哈” > .txt

wc -l .txt 文件内容的行数1

wc -w .txt 文件内容的单词数3

wc -c .txt 文件内容的字节数15

wc .txt 文件内容的行数,单词数,字节数1 3 15

wc -m .txt 文件的字符数13

sed

是一种流编辑器,它是文本处理中非常中的工具,能够完美的配合正则表达式使用。一般用于自动编辑转换程序,动态调整文件内容。

sed ‘s/good/GOODS/’ file 替换每行之一个指定字符串(输出所有行)

sed -n ‘s/good/GOODS/p’ file 替换每行之一个指定字符串(只输出替换的行)

sed -i ‘s/good/GOODS/g’ file 替换所有指定字符串,并应用到文件

sed ‘2d’ file 删除第二行

sed ‘/^test/d’ 删除good开头的行

sed -n ‘3p’ file 打印第3行

显示当前时间 # Tue May 7 14:35:31 DST 2023

当前日期和时间 #:34:25

使用history命令可以查看之前输过的命令及其id,

使用 !id 的形式,可以快速执行指定历史命令

Linux命令大全:

linux grep .sh的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于linux grep .sh,高效搜索:使用Linux grep命令进行.sh文件操作,linux中grep命令的使用,Linux中使用grep命令搜索文件名及文件内容的方法,Linux 高级命令的信息别忘了在本站进行查找喔。


数据运维技术 » 高效搜索:使用Linux grep命令进行.sh文件操作 (linux grep .sh)