我正在尝试从每个行格式的文本文件中提取用户名,并且从我的研究中,似乎唯一的方法是通过间距命令来实现格式:
1 user 3
2 fusrfff 4
3 usrf 12
唯一的问题是因为所有用户都不同我无法定义静态空间量。还有UID(第一个数字)从1-40k开始的事实。用户组号后面还有很多其他信息。谁能指出我正确的方向?感谢。
答案 0 :(得分:2)
awk
并不关心字段之间的空间量:
awk '{print $2}' your_file.txt
如果您只想使用bash
,read
也不关心:
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