如果我的变量数据为
test="score=5,grade=d,pass=f,"
无论如何,我可以从变量中提取数据/重写数据,
test="score,grade,pass"
我不需要=
,&
和,
字符之间的数据。
答案 0 :(得分:5)
在纯bash中(不需要像sed或awk或perl这样的外部工具),可以使用“参数扩展”来操作字符串。您可以在Bash的手册页中阅读此内容。
#!/usr/bin/env bash
test="score=5,grade=d,pass=f,"
# Use the "extglob" shell option for "extended" notation on patterns.
shopt -s extglob
# First, remove the bits from equals to before each comma...
test="${test//=+([^,]),/,}"
# Next, remove the trailing comma.
test="${test%,}"
echo "$test"
答案 1 :(得分:0)
您可以使用sed。
echo "score=5,grade=d,pass=f," | sed 's/=[^,]*\(,$\|\)//g'
或
echo "score=5,grade=d,pass=f," | sed 's/=[^,]*\|,$//g'