如何确定linux中空格的确切特征?

时间:2012-12-27 15:11:48

标签: linux shell

我正在尝试获取ps -aux的PID字段。我知道我可以使用ps -aux | awk '{print $2}'来实现这一点,但是实践想看看我是否可以使用cut命令执行相同操作。我的想法是指定一个分隔符并选择第二个字段:

 ps -aux | cut -d[delimiter] -f2

使用空格作为分隔符(' ')不起作用,tab(\t)也没有。

一般来说,如何在linux中找出白色空间的确切特征?

4 个答案:

答案 0 :(得分:3)

要识别其他不可打印或类似外观的字符(如空格),请将输出管道输出到xxdod -c等工具。例如,这会输出每个字符的十六进制值以及便于查找的文本:

ps -aux | xxd -g 1        # -g 1 outputs each character individually

但是我认为你的问题是ps -aux在字段之间使用了多个空格; cut不处理多个连续的分隔符,因此它会打印第一个和第二个空格之间的任何内容,即什么都没有。

如果你真的想要使用剪切,你必须删除前导空格和重复空格:

ps -aux | sed 's/^ *//;s/  */ /g' | cut -d' ' -f2

答案 1 :(得分:2)

cut不支持将多个字符作为分隔符。 如果你真的想使用cut:

,字段之间有多个空格
ps aux | sed 's/  */ /g' | cut -d ' ' -f 2

答案 2 :(得分:1)

要获取ps命令的PID,您可以执行以下操作:

ps -aux | cut -c10-15

答案 3 :(得分:1)

有关信息:根据u,您在ps aux中使用的man ps表示:

  

u显示面向用户的格式

所以你明确要求人类可读的输出,然后用一些工具解析它?这不太合适(至少可以说)。如果您需要格式化ps的输出,请使用-o(或--format)选项,如果您的ps版本接受它。因此:

ps ax -o pid

更多更好。