输入:
$ cat a.txt
1FOO2FOO3
4FOO5FOO5
2FOO1FOO9
$
Run Code Online (Sandbox Code Playgroud)
输出:
$ cat a.txt | sort SOMEMAGIC
2FOO1FOO9
1FOO2FOO3
4FOO5FOO5
$
Run Code Online (Sandbox Code Playgroud)
问题:如果我有几个字符长的分隔符,我该如何排序?(“FOO”)?
在示例a.txt
中按第二列排序。
问题是一般来说,数字a.txt
可以是任何东西。
使用 egsed
用一个字符的分隔符替换字符串,按列排序,然后再次替换分隔符:
sed -e s/FOO/X/g a.txt | sort -k 2,2 -t X | sed -e s/X/FOO/g
Run Code Online (Sandbox Code Playgroud)
这假设有一个您知道的字符没有出现在输入中。控制字符将是一个常见的候选者,但您需要根据您对输入格式的了解做出选择。