我正在寻找一种从多个文件中提取“尖叫蛇案”字符串的方法。
尖叫蛇形大写是用下划线隔开的大写单词。正则表达式将是([A-Z]*_?[A-Z]*)*。
现在,我正在寻找在多个文件中找到这种匹配字符串的方法。我希望grep或者find能帮上忙吗?
我所拥有的:
多个子目录中的多个文件
cygwin的shell可能性(因此大多数常见的Linux命令都可用)
有可能发生这样的情况:多个这样的字符串位于一行中。
例如:
Some text WITH some SNAKE_CASE words.
输出应该是如下所示的列表:
WITH
SNAKE_CASE
这种情况的用例是,蛇用例词被用作
我正在尝试创建一个函数,它基本上接受像f hello there my friend这样的参数,并使用find在目录中搜索所有出现的字符串,所以它应该是find | grep 'hello\|there\|my\|friend'。我是shell脚本的新手,但我的代码如下:
function f {
cmd="find | grep '"
for var in "$@"
do
cmd="$cmd$var\\|"
done
cmd="${cmd%\\|}'"
echo
我正在编写处理文件的shell脚本。我需要找到文件,用一些重要的信息打印出来。那没问题..。但是,我想添加一些“特性”,并使其与参数一起工作。其中一个特性是忽略一些与patterm匹配的文件(比如*.c -忽略所有c文件)。所以我设置了变量,并在其中添加了字符串。
#!/bin/sh
command="grep -Ev \"$2\"" # in 2nd argument is pattern, that will be ignored
echo "find $PWD -type f | $command | wc -l" # printing c
我根据正则表达式搜索文件,然后尝试搜索这些文件的内容。所以,例如,我有一件事
#Find all C++ files that match a certain pattern and then search them
find . -name "*.cpp" | grep "<name regex>" | xargs grep "<content regex>"
我遇到的问题是,其中一些路径中有空格,这使xargs感到困惑。我知道,如果我只是使用find,我可以使用-print0参数(以及xargs上的-0参数)来防止xa
我有一个简单的脚本来检查今天的日期文件。在下面的示例中,如果找不到文件,则忽略below条件。为什么会这样呢?
if filedir=$(find . -type f -name "*.sql.gz" -mtime -1 -printf "%f\n"); then
echo $filedir
else
echo "oops"
fi