How to specify more spaces for the delimiter using cut?

前端 未结 12 686
遥遥无期
遥遥无期 2020-12-04 05:51

Is there any way to specify a field delimiter for more spaces with the cut command? (like \" \"+) ? For example: In the following string, I like to reach value \'3744\', wha

12条回答
  •  予麋鹿
    予麋鹿 (楼主)
    2020-12-04 06:21

    Actually awk is exactly the tool you should be looking into:

    ps axu | grep '[j]boss' | awk '{print $5}'
    

    or you can ditch the grep altogether since awk knows about regular expressions:

    ps axu | awk '/[j]boss/ {print $5}'
    

    But if, for some bizarre reason, you really can't use awk, there are other simpler things you can do, like collapse all whitespace to a single space first:

    ps axu | grep '[j]boss' | sed 's/\s\s*/ /g' | cut -d' ' -f5
    

    That grep trick, by the way, is a neat way to only get the jboss processes and not the grep jboss one (ditto for the awk variant as well).

    The grep process will have a literal grep [j]boss in its process command so will not be caught by the grep itself, which is looking for the character class [j] followed by boss.

    This is a nifty way to avoid the | grep xyz | grep -v grep paradigm that some people use.

提交回复
热议问题