这一行:

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/

10-11 20:19