如何在Unix shell脚本中从字符串中剪切空格

Tus*_*ani 3 unix bash shell

我正在阅读一个文件并根据一些逻辑切割一列.我的问题是我无法用空格剪​​切一列.

这是测试代码 -

st="1|alalhabad|up|tushar|kesarwani|90|   mls   k|19990|india|420|24|m"
HardErrorCheckColumnValue=`echo $st | cut -d'|' -f7`
echo $HardErrorCheckColumnValue
Run Code Online (Sandbox Code Playgroud)

输出应该是 -

   mls   k
Run Code Online (Sandbox Code Playgroud)

但我得到 -

mls   k
Run Code Online (Sandbox Code Playgroud)

如何使其不修剪前导或尾随空格?它应该给空间,即使它只包含空间.

anu*_*ava 5

您必须在变量周围使用引号:

HardErrorCheckColumnValue=$(echo "$st" | cut -d'|' -f7)
echo "$HardErrorCheckColumnValue"
   mls   k
Run Code Online (Sandbox Code Playgroud)

更好地使用$(...)而不是旧式的后退来进行命令替换.