linux如何实现,对某个文本循环查找多个字符串,并输出所在行的内容?

linux如何实现,对某个文本循环查找多个字符串,并输出所在行的内容?,第1张

在 Linux 中,您可以使用 grep 命令来实现这个功能。该命令可以用来在文本文件中搜索特定的文本模式。

例如,要查找在文件 all.log 中含有单词 word 的行,您可以使用以下命令:

grep word all.log

如果要查找多个单词,您可以将它们放在一个字符串中,然后将该字符串作为 grep 命令的参数。例如,要查找在文件 all.log 中含有单词 word、list、hello、good 或 bad 的行,您可以使用以下命令:

grep "word|list|hello|good|bad" all.log

请注意,单词之间使用 | 符号隔开,表示“或”的意思。

此外,您还可以使用 -f 选项来指定要查找的单词列表所在的文件,这样就可以避免在命令行中手动输入单词列表。例如,如果要查找的单词列表保存在文件 search.txt 中,您可以使用以下命令:

grep -f search.txt all.log

希望这些信息能够帮助您解决问题。

scanf结束标志:

① 遇空格、“回车”、“跳格”键。

② 遇宽度结束。

③ 遇非法输入。

如果要识别空格的话 有三种方法:

1.人工加空格法:

用个变量读没有空格的单词,另一个变量存储变量,变量间用空格隔开。

2.gets()函数

这个函数用法比较危险,因为它无法判字符串的长度

如char a[10]

您的输入是abcdefggjhh dddda dddd

明显超过10个字符 而a数组只是存储了10个字符

3.继续我们的scanf函数 但是有规定只能是字母跟数字组成的字符串

scanf("%[ a-zA-Z0-9]s", str)

我们来看个例子:

#include <stdio.h>

int main()

{

char str[20]

scanf("%[ a-zA-Z0-9]s", str)

printf("%s\n",str)

return 0

}

输入:

12a bbb ccc 123 1adb2

输出:

12a bbb ccc 123 1adb2

希望对楼主你有所帮助


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

原文地址: http://outofmemory.cn/yw/8738463.html

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

发表评论

登录后才能评论

评论列表(0条)

保存