我有一个带有名称的文件,我想按字母顺序对它们进行排序,但小写字母必须在大写字母之前。因此,如果我有例如:AnyANAAna它应分类为:AnaAnyANA如果可能的话,我想通过排序来实现这一点,它有什么选择吗?我目前的排序方式:cut -d";" -f2-3 $1 | paste - $1 | sort | cut -f2- >> sorted.txt参数中给出的文件中的行$1如下所示:12345;Name;Lastname
3 回答
慕容708150
TA贡献1831条经验 获得超4个赞
如果您的input.txt类似于:
Any
ANA
Bill
BOB
Ana
并且您希望您的输出为:
Ana
Any
Bill
ANA
BOB
然后,也许您可以尝试类似的方法:
grep -E "[a-z]+" input.txt | sort > lower.txt
grep -wE "[A-Z]+" input.txt | sort > upper.txt
cat lower.txt upper.txt
波斯汪
TA贡献1811条经验 获得超4个赞
使用Perl,您可以说:
perl -e '
print sort {
($ka = (split(/;/, $a))[1]) =~ tr/a-zA-Z/A-Za-z/;
($kb = (split(/;/, $b))[1]) =~ tr/a-zA-Z/A-Za-z/;
$ka cmp $kb;
} <>' input.txt
- 3 回答
- 0 关注
- 268 浏览
添加回答
举报
0/150
提交
取消