【发布时间】:2018-10-31 16:19:47
【问题描述】:
如何在shell中剪切字符串的第一列(可变长度)?
字符串前的:
23006 help.txt
我需要 23006 作为输出
【问题讨论】:
如何在shell中剪切字符串的第一列(可变长度)?
字符串前的:
23006 help.txt
我需要 23006 作为输出
【问题讨论】:
多种方式:
cut -d' ' -f1 <filename # If field separator is space
cut -f1 <filename # If field separator is tab
cut -d' ' -f1 <filename | cut -f1 # If field separator is space OR tab
awk '{print $1}' filename
while read x _ ; do echo $x ; done < filename
【讨论】:
cut 选项,当我输入ps 输出时,显示结果中的唯一条目是第一列(由OP 表示)长度的条目5 而长度为 3 或 4 的则不是。在显示的输出之前有一个空白区域,我猜这个空间的行号(术语高度)与上述行相同,隐藏了 3 / 4 字符宽的第一列条目。 awk 方式运行良好。
ps 给出格式化输出。 (就像printf %5d 一样。)因此,当cut 使用space 作为分隔符时,它会将前导空格(对于较小的PID 编号)视为分隔符。因此它会打印第一个空格之前的所有内容(在这种情况下什么都没有。)
cut -d " " -f1 test.txt
其中 test.txt 包含您的输入行
【讨论】:
这个对我有用
cut -d' ' -f2-
【讨论】: