bash中特定行中的搜索模式
我想在特定行中查找模式(不区分大小写)。如果我发现了,就做点什么。 我不能使用grep,因为在所有文件中都可以找到。bash中特定行中的搜索模式,bash,grep,Bash,Grep,我想在特定行中查找模式(不区分大小写)。如果我发现了,就做点什么。 我不能使用grep,因为在所有文件中都可以找到。 最好的方法是什么?试试这个,其中2是要搜索模式的行: sed'2!d/模式/I!d'输入 这个sed脚本基本上删除了除第2行之外的所有行,就像2不是第2行;然后在通过该操作的所有行中,这意味着在本例中只有第2行,所有不匹配的模式也被d删除 因此,只有当第2行与模式匹配时,它才剩下,并由sed隐式打印 注意,不区分大小写的标志I不是POSIX,IIRC。试试看。如果它不起作用,您
最好的方法是什么?试试这个,其中
2
是要搜索模式的行:
sed'2!d/模式/I!d'输入
这个sed脚本基本上删除了除第2行之外的所有行,就像2代码>不是第2行;然后在通过该操作的所有行中,这意味着在本例中只有第2行,所有不匹配的模式
也被d
删除
因此,只有当第2行与模式匹配时,它才剩下,并由sed隐式打印
注意,不区分大小写的标志I
不是POSIX,IIRC。试试看。如果它不起作用,您可以始终使用[pP][aA][tT][tT][eE][rR][nN]
还要注意,在匹配和不匹配的情况下,此命令都将返回0。如果您需要根据文件是否匹配采取措施,可以这样做
[-n$(sed'2!d;/pattern/I!d'输入)]&&echo-matched | | echo-not-matched
如果模式是一个变量,则可以如下所示包含它:
sed'2!d、 /'“$variable”'/I!d'输入
awk'FNR==64&&/patterrn/{interest}文件
maybe?请根据文件进行编辑。谢谢。对不起,数字行也是一个变量。我尝试了这一点,但不起作用:因为我在“${patrones[@]}”中做了if[-n$(sed“${Line}!d;/”${I}'/I!d“$rutaFich/titles)];然后PintaLog“Encontrado el-patron$i en la linea$Line”退出0其他PintaLog“No Encontrado el-patron$i en la linea$Line”fidone@defekas17首先,我不懂西班牙语,或者其他什么语言;第二,修正引用。你的是错误的:“${Line}!d;/”${i}'/i!d“
。这是正确的:“${Line}”!d、 /'“${i}”'/i!d'
。