Báo lại giá trị sau một từ trong tệp trong Windows bash


1

Tôi có một tập tin cấu hình có chứa như sau:

~some stuff~  
name test  
type online  
user me  
password hello  
serverip 192.168.20.1  
timetolive 500  
randomvar 200  
~some more stuff~  

Tôi muốn viết một bash tìm và hiển thị hiện tại serveriptrong tập tin này.

Kết quả mong muốn:

192.168.20.1

Tôi đang sử dụng findstr serveripnhưng đầu ra của nó là:

serverip 192.168.20.1

Bất kỳ cách dễ dàng để loại bỏ "ip" trong kết quả?


2
Tại sao bạn sử dụng findstr(lệnh Windows) trong bashtập lệnh shell?
DavidPostill

Cảm ơn các định dạng. Tôi loại bỏ các thẻ sai, điều này chỉ dành cho lệnh Windows.
phLOx

Câu trả lời:


0

Bất kỳ cách dễ dàng để loại bỏ "ip" trong kết quả?

Sử dụng tệp bó sau có tên test.cmd(nơi tệp cấu hình được đặt tên 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

Thí dụ:

> 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

Đọc thêm

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.