linux查文件中的字符串,Linux中查寻包含特定字符串的所有文件

1.findtxt.sh

#!/bin/bash

echo -e "\nThis script finds files in a specific dir with a keyword.\nOK,Please input a keyword:"

read keyword

if [ "$keyword" = "" ]; then

echo  "keyword can not be null!\n"

exit 0

fi

echo "\nPlease input the dir path:"

read dirPath

while [ "$dirPath" = "" ]

do

echo  "The dir can't be null,pls input it again"

read  dirPath

done

if [ ! -d "$dirPath" ]; then

echo "The $dirPath is not exist!\n\n"

exit 0

fi

echo  "\n--------------- Find these files ---------------\n"

fileCount=0

files=`ls -R $dirPath 2> /dev/null | grep -v '^$'`

for fileName in $files

do

temp=`echo $fileName | sed 's/:.*$//g'`

if [ "$fileName" != "$temp" ]; then

currentDir=$temp

else

fileType=`file $currentDir/$fileName | grep "text"`

if [ "$fileType" != "" ]; then

temp=`grep $keyword $currentDir/$fileName 2> /dev/null`

if [ "$temp" != "" ]; then

echo $currentDir/$fileName

fileCount=`expr $fileCount + 1`

fi

fi

fi

done

if [ $fileCount -gt 0 ];then

echo "\n\nFiles Total: $fileCount"

echo "\nFind Finished!\n"

else

echo "No files found!"

fi

2.将以上findtxt.sh放在任意目录下,如:/home/findtxt.sh

3.切换到当前用户目录下:cd ~

编辑.bashrc文件

在文件的最末尾添加:

#alias for the find special content in the type files of text

alias findtxt='sh /home/findtxt.sh'

4.重新登录后生效。

5. tom@tom-VirtualBox:~$ findtxt

This script finds files in a specific dir with a keyword.

OK,Please input a keyword:

### 回答1: 要在Linux包含特定字符的文件,可以使用grep命令。例如,要包含“hello”的所有文件,可以使用以下命令: grep -r "hello" /path/to/directory 其,“-r”选项表示递归搜索整个目录,而“/path/to/directory”是要搜索的目录路径。如果要在当前目录搜索,可以将路径替换为“.”。 ### 回答2: 在Linux系统,可以使用以下命令来文件是否包含特定字符:grep命令。grep命令用于在文件搜索文本模式,并将匹配的行打印出来。 语法格式如下: grep [选项] '模式' 文件名 例如,要文件file.txt是否包含字符"abc",可以使用以下命令: grep 'abc' file.txt 如果文件存在匹配的行,则grep命令将显示这些行。如果文件不存在匹配的行,则grep命令不显示任何输出。 除了直接文件内容,grep命令还可以与其他命令组合使用来进行更复杂的操作。 例如,要询当前目录下所有文件包含字符"abc"的文件名,可以使用以下命令: grep -l 'abc' * 其,-l选项表示只输出匹配的文件名,而不输出匹配的行。*表示当前目录下所有文件。 此外,grep命令还支持许多其他选项,可以根据需要进行调整和使用。例如,可以使用-i选项来忽略大小写,-r选项可以递归询子目录下的所有文件。 总之,使用grep命令可以轻松文件是否包含特定字符,并可以根据需要进行进一步的操作。 ### 回答3: 在Linux,我们可以使用grep命令来文件是否包含特定字符。grep命令是一个非常强大的文本搜索工具,它可以从文件或者标准输入包含指定字符的行。 grep命令的基本语法如下: grep [选项] [要搜索字符串] [要搜索文件] 其,选项通常用于指定搜索模式的不同设置。例如,使用 -i 选项可以忽略大小写,使用 -r 选项可以递归搜索整个目录下的文件。 下面是一些常用的grep命令实例: 1. 包含指定字符的行: grep "keyword" file.txt 上述命令将在file.txt文件搜索包含"keyword"的行,并将结果输出到终端。 2. 忽略大小写询: grep -i "keyword" file.txt 上述命令将在file.txt文件搜索包含"keyword"的行,不区分大小写。 3. 递归搜索目录下所有文件: grep -r "keyword" directory/ 上述命令将在directory目录下递归搜索所有文件包含"keyword"的行。 除了使用grep命令外,还可以使用其他一些Linux命令进行文件询,例如: - 使用cat命令文件内容,并使用管道符号"|"将结果传递给grep进行过滤搜索。 - 使用find命令结合grep进行文件搜索和过滤。 总之,Linux提供了多种方式文件是否包含特定字符,其grep命令是最常用和强大的工具之一。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值