1)在Linuxshell腳本中使用正則表達式解析字符串的正確方法是什么?
包括正則表達式功能的工具包括sed、grep、awk、perl、python等等。即使是更新版本的bash也具有regex功能。你所要做的就是查找關于如何使用它們的文檔。
2)在這里使用SED是正確的嗎?
可以,但不是必須的。
3)這可以用grep來完成嗎?
是的,可以。您只需構造類似的regex,就像使用sed或其他方法一樣。請注意,grep只做它所做的,如果您想修改任何文件,它不會為您做。
4)是否有其他更簡單/更合適的命令?
當然。regex可以很強大,但它不一定是每次使用的最佳工具。這也取決于你所說的“簡單/合適”的意思。
在regex上使用的另一種方法是使用字段/分隔符方法。你要尋找可以“分裂”的圖案。例如,在您的情況下(我下載了165297.json文件,而不是使用curl…(但它是相同的)
awk 'BEGIN{
FS="reputation" # split on the word "reputation"
}
{
m=split($2,a,"\",\"") # field 2 will contain the value you want plus the rest
# Then split on ":" and save to array "a"
gsub(/[:\",]/,"",a[1]) # now, get rid of the redundant characters
print a[1]
}' 165297.json
輸出:
$ ./shell.sh
2747