我不熟悉Linux,所以我很難將下面的命令轉換成相對較短的Linux版本。shell,在屬性文件中查找屬性。有Windows命令版本
FOR /F "eol=; tokens=2,2 delims==" %i IN ('findstr /i "version" test.properties') DO
在谷歌上搜索我似乎在過長的解決方案總是跌倒。
我不熟悉Linux,所以我很難將下面的命令轉換成相對較短的Linux版本。shell,在屬性文件中查找屬性。有Windows命令版本
FOR /F "eol=; tokens=2,2 delims==" %i IN ('findstr /i "version" test.properties') DO
在谷歌上搜索我似乎在過長的解決方案總是跌倒。
我相信這是等同於:
for i in $(grep -i "version" test.properties | cut -d= -f2)
do
echo $i
done
你應該在';'之後去掉任何東西,並且for循環會用空白符打斷值,我不知道windows版本是否有效。 – 2011-02-24 10:08:26
當將它放入shell文件並運行它時,似乎會淨出一個意外的令牌。 !'#/斌/因爲我在$慶典 (grep的-i 「版本」 test.properties |切-d = -f2) 做 回聲$我 做 ' – Jack 2011-02-24 10:14:17
@Jack你需要分號,如果你想把它寫在一行上:'for i in $(grep -i「version」test.properties | cut -d = -f2);做echo $ i;做完了' – dogbane 2011-02-24 10:17:23
sed -ne 's/^ *version *= *\([^;]*\).*/\1/p' < test.properties | while read i; do ... done
使用sed
搜索需要的行並解析出在同一時間的價值,而閱讀以防止線分離。
這會導致文件意外結束? – Jack 2011-02-24 10:12:15
下一次,顯示test.properties文件的示例,以便其他人不必猜測它的外觀如何。此外,還顯示您所需的輸出。
awk 'BEGIN{IGNORECASE=1;FS="="}/version/{print $2;exit}' test.properties
...是的。廢棄代碼,描述過程。 – 2011-02-24 09:53:14
那應該做什麼?輸入文件和輸出預計也會有所幫助:) – 2011-02-24 10:01:11
對不起,知道我忘記了一些東西。我試圖從文件test.properties中檢索名爲version的屬性。該屬性文件是:'version = 1.0' – Jack 2011-02-24 10:07:26