shell查找文件内容|利用shell脚本如何提取一个文件中某一特定行和下面若干行的内容

shell查找文件内容|利用shell脚本如何提取一个文件中某一特定行和下面若干行的内容的第1张示图

① shell基本命令

常用命令一、目录操作a) ls–查看文件/目录:常用:ls –l 查看详细文件列表b) pwd–查看当前目录:c) cd–改变工作目录:常用①:cd ../ 跳转到上一级目录备注: [./]当前目录 [../]上一级目录常用②:cd /boot/ 跳转到指定目录备注:指定目录一定是完整路径,例如win的文件路径一样。d) mkdir–创建目录:常用:mkdir 123 创建一个空文件夹e) rm–删除文件/目录:常用: rm -rf 123 删除目录文件夹,并且目录下的文件一并删除。备注:直接使用命令[rm],只能删除空目录。-r 删除目录 -f 强制删除文件或目录f) mv–移动文件/目录改名、移动:移动文件: mv 1.sh ./123 à mv 目标文件 移动至某目录重名命文件:mv 1.sh 123.sh à mv 原文件 欲改后文件g) ln–建立软连接和硬连接:软连接:ln -s 123.sh ../ à ln -s 源文件 欲放置路径如同window下的快捷方式,原理一致。ln -s /root/桌面/共享文件夹/armQT/ /root/桌面硬连接:ln 123.sh ../ à ln 源文件 欲放置路径复制一个文件,且该文件具有独立性,不受源文件删除的影响;无论源文件或目标文件的内容修改时,两份文件都会同步修改。h) rmdir–删除空目录:二、文件操作a)cat–查看文件内容,若文件不存在,创建对应文件:常用:cat 1.txtb)cp–拷贝文件、目录:备份:cp 123.sh 1.sh à cp 源文件 目标文件复制至某路径:cp 123.sh ../ à cp 源文件 目标路径c)chmod–修改文件权限:常用:chmod 777 1.sh 给1.sh最高权限备注:读、写、运行三项权限可以用数字表示,就是r=4,w=2,x=1。777就是rwxrwxrwx,意思是该登录用户(可以用命令id查看)、他所在的组和其他人都有最高权限。一般模式:chmod +rw 1.sh 仅当前用户下1.sh具有可读写权限d)touch–创建文件:常用:touch ./1.sh à touch 路径+名称f)vim–创建并打开文件:常用:vim ./1.sh à vim 路径+名称g)find–在指定目录查找符合条件的文件:以[文件名+类型]寻找:find ./ -name “*.*”à find 路径 -nama “预找文件名+类型”寻找文件名为”123”的文件,*代表不限制类型find ./ ! -name “*.txt” à 过滤txt类型文件后,显示其他文件备注:-name 区分大小写 -iname 不区分大小写-o 连接符,作用如下图以[文件名]寻找:find ./ -path “*1*”à find 路径 – path “预找文件名”寻找文件名为”1”的所有文件根据文件类型进行搜索:find . -type 类型参数h)grep–在文件里查找内容:从指定文件里查找内容:grep h ./file.txt à grep 内容 路径从缓存区里查找内容:ps -ef | grep 5799 à 某显示命令 | grep 内容(从进程列表中寻找带有”5799”的文本行)i)tar–解压文件:压缩:tar -cvf 1.tar *.* //将目录里所有文件打包成1.tarrar a 1.rar *.* //rar格式的压缩zip 1.zip *.* //zip格式的压缩解压:tar -xvf file.tar //解压tar包tar -xzvf file.tar.gz //解压tar.gzunrar e file.rar //解压rarunzip file.zip //解压zipj)file–显示指定文件的类型:三、用户系统及权限管理操作a)su–用户类型切换:b)adser–添加用户:c)passwd–设置(更改)用户口令:d)usermod–设置用户属性:e)ps–显示当前系统用户进程列表:常用:ps -ef 显示当前系统所有用户的详细进程-e 显示所有程序。 -f 显示UID,PPIP,C与STIME栏位-A 显示所有程序。f)kill–删除执行中的进程:常用:kill 123 à kill pid号强制结束进程: kill -9 123 à kill -9 pid号四、帮助命令a)man–查询命令阅读手册man kill à 查询有关[kill]的全部信息man 2 kill à 只查询第二条有关[kill]的信息b)help–查询命令阅读手册五、网络相关命令a)ifconfig 查看网络信息,设置ipb)ping 测试网络联网状态六、U盘操作相关命令a)fdisk -l 识别usb存储设备b)mount –t vfat /dev/sdb /mnt/udisk使用mount命令挂载U盘c)umount /mnt/udisk 卸载U盘七、安装软件包命令a)rpm常用组合命令:-ivh:安装显示安装进度–install–verbose–hash-Uvh:升级软件包–Update;-qpl: 列出RPM软件包内的文件信息[Query Package list];-qpi:列出RPM软件包的描述信息[Query Package install package(s)];-qf:查找指定文件属于哪个RPM软件包[Query File];-Va:校验所有的 RPM软件包,查找丢失的文件[View Lost];-e:删除包

② shell查询并修改文档内容

#!/bin/bash

#echo hi

read -p "请键入文来本路径:" wbbj

read -p "请键入需要查询源并修改的内容:" wbnr

cat $wbbj |grep -n "$wbnr" &>/dev/null

echo $? &>/dev/null

if [[ $? -eq 1 ]]; then

echo "你查找$wbnr内容不存在"

exit 7

else

cat $wbbj |grep -n "1=a" |sed 's/1=a/1=A/g'>$wbbj

fi

==========================================

这只是一个简单的脚本,如果需要修改的文本内容较多就直接在交互下面添加while语法 循环即可。

加粗的部分你可以自行修改。

③ linux shell怎么查找文件中指定字符串,并把该字符串和下一行的内容写到另一个文件中

有两种写入方式:1、grep-i"aaa"-A1 1.txt|grep-v -e "–">2.txtgrep 指令用于查找内容包含指定的范本样式的文件,如果发现某文件的内容符合所指定的范本样式,预设grep指令会把含有范本样式的那一列显示出来。若不指定任何文件名称,或是所给予的文件名为“-”,则grep指令会从标准输入设备读取数据。2、awk'/aaa/{getlinevar;print$1"\n"var}'1.txt>2.txtawk语言的最基本功能是在文件或者字符串中基于指定规则浏览和抽取信息,awk抽取信息后,才能进行其他文本操作。完整的awk脚本通常用来格式化文本文件中的信息。linuxshell中引号的使用方法:shell使用引号(单引号/双引号)和反斜线("\")用于向shell解释器屏蔽一些特殊字符,反引号(")对shell则有特殊意义。如:abc="howareyou"(bash/pdksh)setabc="howareyou"(tcsh)这个命令行把三个单词组成的字符串howareyou作为一个整体赋值给变量abc.abc1='@LOGNAME,howareyou!'(bash/pdksh)setabc1='$LOGNAME,howareyou!'(tcsh)abc2="$LOGNAME,howareyou!"(bash/pdksh)setabc2="$LOGNAME,howareyou!"(tcsh)。

④ shell脚本中find怎么用

首先是find的语法:find [起始目录] 寻找条件 操作还有种表述方式:find PATH OPTION [-exec COMMAND { } \;]因为find命令会根据我们给的option,也就是寻找条件从我们给出的目录开始对其中文件及其下子目录中的文件进行递归搜索,所以我觉的这个地方说是“起始目录”是非常好的。该命令中的寻找条件可以是一个用逻辑运算符 not、and、or 组成的复合条件。逻辑运 算符 and、or、not 的含义为:(1) and:逻辑与,在命令中用“-a”表示,是系统缺省的选项,表示只有当所给的条 件都满足时,寻找条件才算满足。例如:find –name ’tmp’ –xtype c -user ’inin’% 该命令寻找三个给定条件都满足的所有文件(2) or:逻辑或,在命令中用“-o”表示。该运算符表示只要所给的条件中有一个满足 时,寻找条件就算满足。例如:find –name ’tmp’ –o –name ’mina*’% 该命令查询文件名为’tmp’或是匹配’mina*’的所有文件。(3) not:逻辑非,在命令中用“!”表示。该运算符表示查找不满足所给条件的文件 。例如:find ! –name ’tmp’% 该命令查询文件名不是’tmp’的所有文件。需要说明的是:当使用很多的逻辑选项时,可以用括号把这些选项括起来。为了避免Shell本身对括号引起误解,在话号前需要加转义字符“\”来去除括号的意义。例:find –name′tmp′–xtypec−user′inin′我觉的现在我应该说下出了查询条件,在find中的option的内容了:在option中,具体有参数:-name ’字串’ 查找文件名匹配所给字串的所有文件,字串内可用通配符 *、?、[ ]。-lname ’字串’ 查找文件名匹配所给字串的所有符号链接文件,字串内可用通配符 *、?、[ ]。-gid n 查找属于ID号为 n 的用户组的所有文件。-uid n 查找属于ID号为 n 的用户的所有文件。-group ’字串’ 查找属于用户组名为所给字串的所有的文件。-user ’字串’ 查找属于用户名为所给字串的所有的文件。-empty 查找大小为 0的目录或文件。-path ’字串’ 查找路径名匹配所给字串的所有文件,字串内可用通配符*、?、[ ]。-perm 权限 查找具有指定权限的文件和目录,权限的表示可以如711,644。-size n[bckw] 查找指定文件大小的文件,n 后面的字符表示单位,缺省为 b,代表512字节的块。-type x 查找类型为 x 的文件,x 为下列字符之一:b 块设备文件c 字符设备文件d 目录文件p 命名管道(FIFO)f 普通文件l 符号链接文件(symbolic links)s socket文件-xtype x 与 -type 基本相同,但只查找符号链接文件。以时间为条件查找-amin n 查找n分钟以前被访问过的所有文件。-atime n 查找n天以前被访问过的所有文件。-cmin n 查找n分钟以前文件状态被修改过的所有文件。-ctime n 查找n天以前文件状态被修改过的所有文件。-mmin n 查找n分钟以前文件内容被修改过的所有文件。-mtime n 查找n天以前文件内容被修改过的所有文件。-print:将搜索结果输出到标准输出。例子:在root以及子目录查找不包括目录/root/bin的,greek用户的,文件类型为普通文件的,3天之前的名为test-find.c的文件,并将结构输出,find命令如下:find / -name "test-find.c" -type f -mtime +3 -user greek -prune /root/bin -print当然在这其中,-print是一个默认选项,我们不必刻意去配置它。我们再看一下exec选项:-exec:对搜索的结构指令指定的shell命令。注意格式要正确:"-exec 命令 {} \;"在}和\之间一定要有空格才行;{}表示命令的参数即为所找到的文件;命令的末尾必须以“ \;”结束。例子:对上述例子搜索出来的文件进行删除操作,命令如下:find / -name "test-find.c" -type f -mtime +3 -user greek -prune /root/bin -exec rm {} \;find命令指令实例:find . – name ‘main*’ – exec more {} \;% 查找当前目录中所有以main开头的文件,并显示这些文件的内容。find . −namea.out−o−name‘∗.o′> – atime +7 – exec rm {} \;% 删除当前目录下所有一周之内没有被访问过的a .out或*.o文件。% 命令中的“.”表示当前目录,此时 find 将从当前目录开始,逐个在其子目录中查找满足后面指定条件的文件。% “”和“” 表示括号(),其中的 “\” 称为转义符。之所以这样写是由于对 Shell 而言,(和)另有不同的含义,而不是这里的用于组合条件的用途。% “-name a.out” 是指要查找名为a.out的文件;% “-name ‘*.o’” 是指要查找所有名字以 .o 结尾的文件。这两个 -name 之间的 -o 表示逻辑或(or),即查找名字为a.out或名字以 .o结尾的文件。% find命令在当前目录及其子目录下找到这佯的文件之后,再进行判断,看其最后访问时间 是否在7天以前(条件 -atime +7),若是,则对该文件执行命令 rm(-exec rm {} \;)。其中 {} 代表当前查到的符合条件的文件名,\;则是语法所要求的。% 上述命令中第一行的最后一个 \ 是续行符。当命令太长而在一行写不下时,可输入一个 \,之后系统将显示一个 >,指示用户继续输入命令。

⑤ 如何用shell脚本读取文件的内容

#!/bin/shfor i in `cat abc.txt`do -f /old/$i /new &> /dev/nulldone

⑥ shell怎么用文件名查找文件位置

题主你好,

使用命令: find

具体格式: find / -name 文件名

命令格式解释:

find: 查找文件时使用的命令;

/ :斜杠相当于windows下的全盘搜索;

-name 文件名: 这两个是一起的, -name参数告诉find命令使用 "文件名" 进行搜索.

总结: 使用find命令,全盘搜索名称为"文件名"的文件, 返回的结果是相应文件名的绝对路径.

—-

举例来说:

我的系统上有一个文件叫car, 但我不知道这个文件在哪,则可以使用下面命令进行搜索:

可以看到, 返回的搜索结果为/root/ok/car, 也就是说我要找的car文件在/root/ok目录下.

—–

希望可以帮到题主, 欢迎追问.

⑦ 利用shell脚本如何提取一个文件中某一特定行和下面若干行的内容

1、在linux目录/root下建来立一个txt文件,内容源如下,使用|竖线分割,作为我们的实验数据样本。

⑧ linux Shell怎么查找指定文件,并进入该文件所在目录,目录有空格

1.使用绝对路径执行的shell文件(如/home/xxx/binfile)直接使用dirname $0即可2.对于使用相对路径执行的shell文件(如 ./xxx/binfile)pwd与dirname结合使用;pwd获得的是执行当前shell文件时,用户所在的位置;dirname可以获得相对于那个位置的偏移:例如某shell文件所在的位置是/home/user_name/work2/SNS3_server_im/Developing/trunk/im_capp/src/notify_serv/shell文件名1 #!/bin/sh2 pwd3 echo `dirname $0`执行后输出/home/user_name/work2/SNS3_server_im/Developing/trunk/im_capp/src./notify_serv

⑨ shell查找文件内的某个特定字符串,并显示同一行内容

grep -w 'NAME' a.txtgrep -w 'Gender' a.txt结合内如比较简单,可以不加-w参数

⑩ powershell怎么查找文件

1.先使用WIN徽标键+R打开搜索框并输入POWERSHELL。2.进入你要打开文件的目录,可以用 cd 盘符:\路径 这串命令来进入要打开文件的目录。然后输入 dir 命令来查看当前目录所有文件。例如小编要打开名为“截图”的PNG图片文件。3.记住一点:在输入命令时,一定要留意文件的拓展名,输入时不要忘记加上去。4.接下来,最最重要的地方到了,小编教你一条在Linux系统中也适用的命令:./文件名.拓展名 一定不要忘了最前面的。5.注意事项:不要使用chcp 937来切换为英文代码页,否则中文会显示不出!

未经允许不得转载:山九号 » shell查找文件内容|利用shell脚本如何提取一个文件中某一特定行和下面若干行的内容

赞 (0)