【问题标题】:How to cut first column (variable length) of a string in shell如何在shell中剪切字符串的第一列(可变长度)
【发布时间】:2018-10-31 16:19:47
【问题描述】:

如何在shell中剪切字符串的第一列(可变长度)?

字符串前的:

23006 help.txt

我需要 23006 作为输出

【问题讨论】:

    标签: linux shell


    【解决方案1】:

    多种方式:

    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 编号)视为分隔符。因此它会打印第一个空格之前的所有内容(在这种情况下什么都没有。)
    【解决方案2】:
    cut -d " " -f1 test.txt
    

    其中 test.txt 包含您的输入行

    【讨论】:

      【解决方案3】:

      这个对我有用

      cut -d' ' -f2-
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2011-04-14
        • 2011-08-22
        • 2011-06-01
        • 2019-05-19
        • 1970-01-01
        • 1970-01-01
        • 2014-08-26
        相关资源
        最近更新 更多