我有一个shell脚本,我想导出不带空格的"data"变量。我尝试过gsub(),但似乎无法正常工作。
export data="`grep -e 'P/N :' "$xfile" | awk '{print substr($3,3)}' `"
if [ "$data" = "" ] && [ "$skipdata" = "0" ]
then
export data="`grep -e 'P/N:' "$xfile" | awk '{print substr($2,3)}' |
awk '{ if (index($1,"-D") != 0)
$1 = (substr($1, 1, (index($1,"-D") -1))) "-DIE" }
{ print $1 }' `"
if [ "$data" = "" ]
then
export data="`grep -e 'CUST PART NO:' "$xfile" | awk '{print substr($4,3)}' |
awk '{ if (index($1,"-D") != 0)
$1 = (substr($1, 1, (index($1,"-D") -1))) "-DIE" }
{ print $1 }' `"
fi
fi
最终,我希望$data没有空白。我能做点什么吗:
export data="awk '{gsub($data," ","");print}"
看起来你的脚本应该像一样编写
data=$(awk -F':' '
$1 ~ /^(P/N[[:space:]]*|CUST PART NO)$/ {
sub(/-D.*/,"-DIE",$2)
gsub(/[[:space:]]+/,"",$2)
print $2
}
' "$xfile")
我们可以以此为起点,如果它不能完全满足您的要求,那么更新您的问题,以包括$xfile中的一些示例行和您想要的输出。
我认为正确的语法是
gsub(/[[:blank:]]+/,"")
所以你可能会使用
data=$(awk '{gsub(/[[:blank:]]+/,""); print}' <<< "$data")