我正在寻找从根目录递归的特定字符串(主要是.c文件).
当我使用它时,我几乎立即得到一个列表.
grep -rl "F_capture" .
Run Code Online (Sandbox Code Playgroud)
但是,如果我尝试通过搜索.c文件来加快速度:
grep -r --include=*.c "F_capture" .
Run Code Online (Sandbox Code Playgroud)
我最终得到了一系列递归目录警告,如下所示:
grep: warning: ./sys/block/fd0/device/bus/drivers/i8042/i8042/serio1/input:event1/subsystem/event3/device/bus/drivers/pcnet32/0000:00:03.0/subsystem: recursive directory loop
Run Code Online (Sandbox Code Playgroud)
当我尝试使用-s参数来抑制警告时,我没有得到警告,但我也没有得到任何回复 - 似乎它已经变成永远不会降落.
grep -rsl --include="*.c" "F_capture" .
Run Code Online (Sandbox Code Playgroud)
所以我想我的问题是,为什么我使用的第一个grep会立即返回一些内容,而我针对特定类型文件的其他类型似乎挂断了.我认为有针对性的搜索会更快.
我有一个逗号分隔的字符串,格式如下:
host1.mydomain.net,host2.mydomain.net,host3.mydomain.net
Run Code Online (Sandbox Code Playgroud)
我正在尝试使用批处理(不允许安装其他软件或使用 powershell)在每个主机名前加上“http://”和“:8080”,然后将它们串在一起。
http://host1.mydomain.net:8080,http://host2.mydomain.net:8080,http://host3.mydomain.net:8080
Run Code Online (Sandbox Code Playgroud)
下面只是我尝试过的一种方法,拆分字符串然后创建一个新的,但是虽然我能够提取每个主机名,但我似乎无法连接它们。还考虑将“http...”添加到字符串的开头,将“:8080”添加到末尾,并将每个逗号替换为“:8080,http://”,但我无法使添加工作. 如果这是 Linux 和 sed,它会非常简单,但是批处理操作对我来说一直很困难。
@echo off
set themes=Host1,Host2,Host3
set NEWSTR1=
echo list = "%themes%"
for %%a in ("%themes:,=" "%") do (
echo hostname is %%~a
if NOT DEFINED NEWSTR1 (
set NEWSTR1=remote://%%~a:4447
echo.%NEWSTR1%
) ELSE (
set NEWSTR1=%NEWSTR1%,remote://"%%a":4447
echo In the else %NEWSTR1% )
)
echo %NEWSTR1%
Run Code Online (Sandbox Code Playgroud)