我有一个包含以下内容的配置文件:
~some stuff~
name test
type online
user me
password hello
serverip 192.168.20.1
timetolive 500
randomvar 200
~some more stuff~
我希望编写一个 bash 来查找并显示serverip
此文件中的当前内容。
期望输出:
192.168.20.1
我正在使用findstr serverip
但它的输出是:
serverip 192.168.20.1
有什么简单的方法可以从结果中删除“ip”?
答案1
有什么简单的方法可以从结果中删除“ip”?
使用以下批处理文件命名test.cmd
(其中配置文件名为config.txt
)
@echo off
setlocal enabledelayedexpansion
for /f "tokens=*" %%i in ('type config.txt ^| findstr serverip') do (
set _line=%%i
set _output=!_line:serverip=server!
echo !_output!
)
endlocal
例子:
> type config.txt
~some stuff~
name test
type online
user me
password hello
serverip 192.168.20.1
timetolive 500
randomvar 200
~some more stuff~
> test
server 192.168.20.1
进一步阅读
- Windows CMD 命令行的 AZ 索引 | SS64.com
- Windows CMD 命令(分类) - Windows CMD - SS64.com
- 命令重定向,管道 - Windows CMD - SS64.com
- EnableDelayedExpansion - Windows CMD - SS64.com
- Findstr - 搜索字符串 - Windows CMD - SS64.com
- For - 循环遍历命令输出 - Windows CMD - SS64.com
- 引号、转义符、分隔符 - Windows CMD - SS64.com
- 类型 - 显示文本文件 - Windows CMD - SS64.com
- 变量编辑替换 - Windows CMD - SS64.com