如何通过未指定的空格提取文本

时间:2017-09-02 15:48:58

标签: bash

我正在尝试从每个行格式的文本文件中提取用户名,并且从我的研究中,似乎唯一的方法是通过间距命令来实现格式:

1   user    3 
2   fusrfff 4
3   usrf    12

唯一的问题是因为所有用户都不同我无法定义静态空间量。还有UID(第一个数字)从1-40k开始的事实。用户组号后面还有很多其他信息。谁能指出我正确的方向?感谢。

3 个答案:

答案 0 :(得分:2)

awk并不关心字段之间的空间量:

awk '{print $2}' your_file.txt

如果您只想使用bashread也不关心:

while read uid username other_stuff; do
    printf '%s\n' "$name"
done < your_file.txt

答案 1 :(得分:1)

首先用一个空格替换空格。您可以使用sed 's/ +/ /g'

tr -s " " < file.txt| cut -d" " -f2

答案 2 :(得分:0)

这是使用 sed

$ cat file.txt| sed  "s/  */ /g" | cut -d' ' -f2
user
fusrfff
usrf