I have a file (user.csv)like this
我有一个这样的文件(user.csv)。
ip,hostname,user,group,encryption,aduser,adattr
want to print all column sort by user,
想要按用户打印所有列排序,
I tried awk -F ":" '{print|"$3 sort -n"}' user.csv
, it doesn't work.
我尝试了awk -F“:”“打印|”$3 sort -n“}”用户。csv,它不起作用。
5 个解决方案
#1
95
How about just sort
.
只是如何。
sort -t, -nk3 user.csv
where
在哪里
-
-t,
- defines your delimiter as,
.-t, -定义你的分隔符为。
-
-n
- gives you numerical sort. Added since you added it in your attempt. If your user field is text only then you dont need it.-n -给你数值排序。因为你在尝试中添加了它。如果您的用户字段是文本,那么您不需要它。
-
-k3
- defines the field (key). user is the third field.-k3 -定义字段(键)。用户是第三个字段。
#2
9
- Use awk to put the user ID in front.
- 使用awk将用户ID放在前面。
- Sort
- 排序
-
Use sed to remove the duplicate user ID, assuming user IDs do not contain any spaces.
使用sed删除重复的用户ID,假设用户ID不包含任何空格。
awk -F, '{ print $3, $0 }' user.csv | sort | sed 's/^.* //'
#3
4
try this -
试试这个,
awk '{print $0|"sort -t',' -nk3 "}' user.csv
OR
或
sort -t',' -nk3 user.csv
#4
3
You can choose a delimiter, in this case I choose colon and print the column number one, sorting by alphabetical order.
您可以选择一个分隔符,在本例中,我选择冒号并打印列编号1,按字母顺序排序。
awk -f\: '{print $1|"sort -u"}' /etc/passwd
#5
2
awk -F, '{ print $3, $0 }' user.csv | sort -nk2
and for reverse order
和相反的顺序
awk -F, '{ print $3, $0 }' user.csv | sort -nrk2
#1
95
How about just sort
.
只是如何。
sort -t, -nk3 user.csv
where
在哪里
-
-t,
- defines your delimiter as,
.-t, -定义你的分隔符为。
-
-n
- gives you numerical sort. Added since you added it in your attempt. If your user field is text only then you dont need it.-n -给你数值排序。因为你在尝试中添加了它。如果您的用户字段是文本,那么您不需要它。
-
-k3
- defines the field (key). user is the third field.-k3 -定义字段(键)。用户是第三个字段。
#2
9
- Use awk to put the user ID in front.
- 使用awk将用户ID放在前面。
- Sort
- 排序
-
Use sed to remove the duplicate user ID, assuming user IDs do not contain any spaces.
使用sed删除重复的用户ID,假设用户ID不包含任何空格。
awk -F, '{ print $3, $0 }' user.csv | sort | sed 's/^.* //'
#3
4
try this -
试试这个,
awk '{print $0|"sort -t',' -nk3 "}' user.csv
OR
或
sort -t',' -nk3 user.csv
#4
3
You can choose a delimiter, in this case I choose colon and print the column number one, sorting by alphabetical order.
您可以选择一个分隔符,在本例中,我选择冒号并打印列编号1,按字母顺序排序。
awk -f\: '{print $1|"sort -u"}' /etc/passwd
#5
2
awk -F, '{ print $3, $0 }' user.csv | sort -nk2
and for reverse order
和相反的顺序
awk -F, '{ print $3, $0 }' user.csv | sort -nrk2