shell 输入字符串,搜索系统所有包含该字符串文件?

shell 输入字符串,搜索系统所有包含该字符串文件?,第1张

有两种写入方式:

1、grep -i "aaa" -A 1 1.txt | grep -v -e "--" >2.txt

grep 指令用于查找内容包含指定的范本样式的文件,如果发现某文件的内容符合所指定的范本样式,预设grep指令会把含有范本样式的那一列显示出来。若不指定任何文件名称,或是所给予的文件名为“-”,则grep指令会从标准输入设备读取数据。

2、awk '/aaa/{getline varprint $1"\n" var}' 1.txt >2.txt

awk语言的最基本功能是在文件或者字符串中基于指定规则浏览和抽取信息,awk抽取信息后,才能进行其他文本 *** 作。完整的awk脚本通常用来格式化文本文件中的信息。

linuxshell中引号的使用方法:

shell使用引号(单引号/双引号)和反斜线("\")用于向shell解释器屏蔽一些特殊字符,反引号(")对shell则有特殊意义。

如:abc="how are you" (bash/pdksh)

set abc = "how are you" (tcsh)

这个命令行把三个单词组成的字符串how are you作为一个整体赋值给变量abc.

abc1='@LOGNAME,how are you!' (bash/pdksh)

set abc1='$LOGNAME,how are you!' (tcsh)

abc2="$LOGNAME,how are you!" (bash/pdksh)

set abc2="$LOGNAME,how are you!" (tcsh)。

#!/bin/bash

read -p "请输入目的内容:"  varchar

grep "$varchar" filename && sed -i "/$varchar/d" filename || echo $varchar >>filename

exit

详细解释:

第1行:申明/解释脚本用的是bash

第2行:用read读取你输入的内容,然后复制给varchar

第3行:在文件filename中查找刚刚你输入的内容,&&表示如果找到了内容就执行后面的命令,||表示如果没找到则执行后面的内容;那么完整解释就是,当前面查找到你输入的内容时,则执行sed -i "***/d" 删除命令,而没有查找到则执行||后面的追加内容命令。

第4行:退出脚本

Ps:filename需要改成你说的那个文件的名字及路径。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/11520008.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-16
下一篇 2023-05-16

发表评论

登录后才能评论

评论列表(0条)

保存