这一行:
echo $(grep Uid /proc/1/status) | cut -d ' ' -f 2
产生输出:
0
这一行:
grep Uid /proc/1/status | cut -d ' ' -f 2
产生输出:
Uid: 0 0 0 0
我的目标是第一个输出。我的问题是,为什么第二个命令没有产生我期望的输出。为什么我需要回显它?
最佳答案
实现此目的的一种方法是更改 bash shell 中的输出字段分隔符或 OFS
变量
IFSOLD="$IFS" # IFS for Internal field separator
IFS=$'\t'
grep 'Uid' /proc/1/status | cut -f 2
0 # Your result
IFS="$IFSOLD"
或者简单的方法
grep 'Uid' /proc/1/status | cut -d $'\t' -f 2
注意:顺便说一句,tab
是剪切的默认定界符 [ here ]
关于linux - 管道 grep 进行切割,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47149411/