我有一個bash文件,與其他行一起在下面的行。如何grep文件中的特定模式
var BUILD_VERSION = '2014.17.10_23';
我只是想提取2014.17.10_23
並且該值可能改變,像grep命令2014*
。但是,當我這樣做時,我得到的整行返回而不是值2014.17.10_23
。
什麼是最好的方法來實現這一目標?
感謝
我有一個bash文件,與其他行一起在下面的行。如何grep文件中的特定模式
var BUILD_VERSION = '2014.17.10_23';
我只是想提取2014.17.10_23
並且該值可能改變,像grep命令2014*
。但是,當我這樣做時,我得到的整行返回而不是值2014.17.10_23
。
什麼是最好的方法來實現這一目標?
感謝
使用awk
:
awk -F= '/BUILD_VERSION/{print $2}' input | tr -d "[' ;]"
而且隨着sed
:
sed -n "/BUILD_VERSION/s/.*'\([^']*\)'.*/\1/p" input
這工作得很好!謝謝 – user1432622
這個命令的工作原理awk -F ='/ BUILD_VERSION/{print $ 2}'input | tr -d「[';]」我從下面的命令中獲取的souce文件中的值unzip -c work/$ todeployname/warfile.war app/config/Property.js> /app/deployments/svnbuild.tmp。因此,不要寫入tmp文件,我如何直接將unizp -c的輸出提供給此命令以獲取內部版本號awk -F ='/ BUILD_VERSION/{print $ 2}'input | tr -d「[';]」 – user1432622
grep 'BUILD_VERSION' <your file> | sed -e 's/var BUILD_VERSION = //g'
會讓你'2014.17.10_23';
(通過幾個或管吧)擺脫行情的調整sed的表達。
這將是Perl中的1個班輪正則表達式...
此命令可用awk -F ='/ BUILD_VERSION/{print $ 2}'輸入| tr -d「[';]」我從下面的命令中獲取的souce文件中的值unzip -c work/$ todeployname/warfile.war app/config/Property.js> /app/deployments/svnbuild.tmp。因此,不要寫入tmp文件,我如何直接將unizp -c的輸出提供給此命令以獲取內部版本號awk -F ='/ BUILD_VERSION/{print $ 2}'input | tr -d「[';]」 - – user1432622
這裏是另一個awk
解決方案:
awk -F' = ' '/BUILD_VERSION/ {gsub(/\x27|;/,""); print $NF}'
此命令的工作原理awk -F ='/ BUILD_VERSION/{print $ 2}'input | tr -d「[';]」我從下面的命令中獲取的souce文件中的值unzip -c work/$ todeployname/warfile.war app/config/Property.js> /app/deployments/svnbuild.tmp。因此,不要寫入tmp文件,我如何直接將unizp -c的輸出提供給此命令以獲取內部版本號awk -F ='/ BUILD_VERSION/{print $ 2}'input | tr -d「[';]」 - – user1432622
@ user1432622管道輸出'your_command | awk ...' –
是的,但是如何在awk命令中的管道後使用your_command引用文件名? – user1432622
您可以使用此awk
awk -F\' '/BUILD_VERSION/ {print $2}' file
2014.17.10_23
該命令可以工作awk -F ='/ BUILD_VERSION/{print $ 2}'input | tr -d「[';]」我從下面的命令中獲取的souce文件中的值unzip -c work/$ todeployname/warfile.war app/config/Property.js> /app/deployments/svnbuild.tmp。因此,不要寫入tmp文件,我如何直接將unizp -c的輸出提供給此命令以獲取內部版本號awk -F ='/ BUILD_VERSION/{print $ 2}'input | tr -d「[';]」 - – user1432622
@ user1432622我不熟悉如何從解壓縮中獲取數據。但是你可以刪除'tr'命令。 'awk -F ='/ BUILD_VERSION/{gsub(/ [; \ x27] /,「」,$ 2); print $ 2}'input''\ x27'創建單引號''' – Jotne
的grep不會做到這一點,你需要在awk或sed的 –
你的正則表達式有效地查找'201';你想要的東西像'grep -oP「^ var [] * BUILD_VERSION [] * = [] *'\ K [^'] *」' – tripleee
@tripleee您應該將其作爲回答。這是一個很好的解決方案,對其他人來說是一個很好的參考。你會得到我的最高票數。 ':)' –