我正在阅读一个文件并根据一些逻辑剪切一列。我的问题是我无法剪切带有空间的列。

这是测试代码 -

st="1|alalhabad|up|tushar|kesarwani|90|   mls   k|19990|india|420|24|m"
HardErrorCheckColumnValue=`echo $st | cut -d'|' -f7`
echo $HardErrorCheckColumnValue

输出应该是 -
   mls   k

但我越来越——
mls   k

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

最佳答案

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

HardErrorCheckColumnValue=$(echo "$st" | cut -d'|' -f7)
echo "$HardErrorCheckColumnValue"
   mls   k

最好使用 $(...) 而不是老式的反引号进行命令替换。

关于bash - 如何从 Unix shell 脚本中的字符串中剪切空格,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/30272704/

10-16 12:15