Hi,

by doing a

ps aux | grep UserName

The output do not keep the LF[1] 😡

I’ve found some solution online by they involve 3 or more pipe | !

On my side, I’ve made this

ps -fp $(pgrep -d, -u UserName)

But still I found it not super human readable.

Is their a native way with ps to filter users ? or to grep it but the keep the LF ?


  1. linefeed https://en.wikipedia.org/wiki/Linefeed#Representation ↩︎

  • RavuAlHemio@lemmy.world
    link
    fedilink
    arrow-up
    8
    ·
    1 month ago

    ps outputs a newline after every entry. What are you trying to accomplish?

    Do you have a username that contains a newline character? If so… why?!

      • RavuAlHemio@lemmy.world
        link
        fedilink
        arrow-up
        3
        arrow-down
        1
        ·
        1 month ago

        Kinda hard to encode it in /etc/passwd, which separates entries with newlines and fields of an entry with colons.

        Of course, you can activate some alternative user database in /etc/nsswitch.conf and then you can have your usernames with newlines in them, but at least half of the tools on your system that process usernames will take that personally…

  • huf [he/him]@hexbear.net
    link
    fedilink
    English
    arrow-up
    3
    ·
    1 month ago

    what do you mean the output doesnt keep the LF? what LF?

    ps also has -u and -U switches to filter by users

  • Para_lyzed@lemmy.world
    link
    fedilink
    arrow-up
    2
    ·
    edit-2
    1 month ago

    I’m not really sure what it is you’re asking for here. As another commenter said, ps outputs a list of newline separated entries (using \n, the standard LF character). I even ran some sanity checks to make sure it wasn’t using \r\n (CR LF) with the following:

    $ ps aux | grep $USER | tr -cd "\n" | wc -m
    14
    $ ps aux | grep $USER | tr -cd "\r" | wc -m
    0
    

    The output of ps aux | grep $USER is consistent with the formatting of ps aux. I also found that ps aux | grep $USER was consistent with ps -fp $(pgrep -d, -u $USER) except that ps -fp $(pgrep -d, -u $USER) shows the header (UID PID PPID C STIME TTY TIME CMD), does not show the processes related to the command (entries of ps aux and grep --color=auto $USER), and does not show grep’s keyword matching by highlighting all matches within a line. It is otherwise completely identical.

    Can you provide the output that you are getting that is unsatisfactory to you? I don’t think I can otherwise understand where the issue is.