|
|
1
12
下面是一个Perl命令行(请注意,shell可能需要您转义
只需将列表导入其中,或者,如果列表在文件中,则将文件名放在命令行的末尾。
以下是示例输出: >perl -e "print sort {(split '/', $a)[-1] <=> (split '/', $b)[-1]} " files.txt
/a/e/f/g/h/01-do-this-first
/a/b/c/10-foo
/a/b/c/20-bar
/a/d/30-bob
/a/b/c/50-baz
/a/e/f/g/h/99-local
|
|
|
2
20
|
|
|
3
8
像这样的
|
|
|
4
3
perl中用于反转一行中字段顺序的一行:
|
|
|
5
2
我想唯一的解决办法就是
|
|
|
6
1
将行上的最后一个分隔符替换为列表中未出现的另一个分隔符,在第二个字段上使用该另一个分隔符作为排序(1)分隔符进行排序,然后还原分隔符更改。
问题是知道要使用的分隔符不在列表中。你可以对列表进行多次遍历,然后对一系列可能的分隔符进行grep,但这一切都相当糟糕——特别是当“对行的最后一个字段排序”的概念表达得如此简单,而解决方案却不是这样的时候。 Edit:NUL是用于$new\delim的一个安全分隔符,因为它不能出现在文件名中,但我不知道如何将NUL字符放入bourne/POSIX shell脚本(不是bash)中,以及sort和sed是否能正确处理它。 |
|
|
7
0
|
|
8
0
|
|
|
9
0
这是一个python的oneliner版本,注意它假设字段是整数,您可以根据需要更改它。
|
|
|
10
0
仍然比sort(1)的简单负字段索引差很多,但是使用DEL字符作为分隔符在这种情况下不会引起任何问题。 我也喜欢它的对称性。 |
|
|
11
-1
(
|
|
|
Plankt0n · Shell,执行一个需要逐一遍历多个值的命令 1 年前 |
|
|
Fin · 如何使用bash从表中提取数据 1 年前 |
|
|
aenagy · Bash声明不喜欢带空格的值 1 年前 |
|
PkDrew · AND运算符“&”在“&tee”中的作用是什么? 1 年前 |
|
|
elbarna · 正则表达式仅排除小写字符串,但保存包含大写的字符串 1 年前 |
|
Harry · 使用“$!”获取后台作业的pid 1 年前 |
|
|
nmr · 使用来自另一个shell脚本的if语句的返回码函数 1 年前 |
|
minseong · Git sed忽略二进制文件 2 年前 |
|
|
Jesper.Lindberg · 检查参数是否包含null 2 年前 |