【发布时间】:2015-03-16 12:21:16
【问题描述】:
我有一个文件 test.txt 为
:ROOM1: :CITY: :2000:
:ROOM2: :RURAL: :1500:
:ROOM3: :CITY: :3000:
我需要根据第一个词和第二个词得到最后一个词。我使用 AWK 在 Unix 中实现了它:
cat get_room_rent.ksh
#!/bin/ksh
FILE_NAME=test.ksh
awk -F: '{ if ($2 == room_name && $4 == type) {print $6} }' room_name=$1 type=$2 $ROOM_RENT
echo ${ROOM_RENT}
运行上面的脚本
RM_RNT=`./get_room_rent.ksh ROOM2 RURAL`
输出
1500
我需要在 Windows 批处理文件中做同样的事情...我不会安装 AWK Windows 版本。
我尝试了类似下面的方法,但我没有运气......
FOR /F "tokens=%ROOM2% delims=:" %%G IN (C:test.txt) DO echo Chosen word is: %%G&goto nextline
:nextline
set showme=Y
FOR /F "tokens=%ROOM2% delims=:" %%G IN (c:test.txt) DO if defined showme set showme=&echo Chosen word is: %%G
【问题讨论】:
-
"我不会安装 awk windows 版本" - 为什么不呢?对我来说似乎容易多了。您可以使用 awk 为不需要任何安装的 Windows 下载 ZIP 文件,例如这里:unxutils.sourceforge.net
-
我做不到。它是一个受限制的服务器,需要管理它默认拥有的东西。
标签: batch-file batch-processing