如何获得管柱长度?

时间:2016-03-17 20:45:56

标签: string shell pipe

这是一个显示我所有用户名的代码。

-q user | grep -A 0 -B 2 -e uid:\ 5'[0-9][0-9]' | grep ^name | cut -d " " -f2-

例如,输出就像......

usernameone
hello
whoami

然后,我希望我想检查所有用户名的长度。 喜欢这个输出...

11 //usernameone
5 //hello
6 //whoami

如何获得一段管道代码?

3 个答案:

答案 0 :(得分:1)

鉴于产生用户列表的某些命令cmd,您可以使用xargs轻松完成此操作:

$ cat x
usernameone
hello
whoami
$ cat x | xargs -L 1 sh -c 'printf "%s //%s\n" "$(echo -n "$1" | wc -c)" "$1"' '{}'
11 //usernameone
5 //hello
6 //whoami

答案 1 :(得分:0)

要获得管道命令可能是不可能的,所以这里有一个使用split和while循环来实现这一目的:

-q user | grep -A 0 -B 2 -e uid:\ 5'[0-9][0-9]' | grep ^name | cut -d " " -f2-|tr " " "\n"|while read user; do echo $(echo $user|wc -c) '//'$user;done|tr "\n" " ";echo

答案 2 :(得分:0)

这应该为您提供所需格式的输出。我使用user作为文件,因此cat

i=0;for token in $(cat user); do echo -n "${#token} //$token";echo;i=$((i+1));done;echo;