5 grep sed awk text-processing sort
我需要根据第一列中的字符数对文件进行排序。
我不知道该怎么做。(在 Linux 上,可以使用 sed/awk/sort)。
一个例子:
.abs is bla bla 12
.abc is bla se 23 bla
.fe is bla bla bla
.jpg is pic extension
.se is for swedish domains
Run Code Online (Sandbox Code Playgroud)
我想要的是根据每行中第一列的长度对这些行进行排序。有些行以 4 个字符开头,有些以 3 或 2 个字符开头。我希望结果类似于:
.fe is bla bla bla
.se is for swedish domains
.abs is bla bla 12
.abc is bla se 23 bla
.jpg is pic extension
Run Code Online (Sandbox Code Playgroud)
这甚至可能吗?
awk
您可以首先使用, do添加另一个包含字符数的列,sort
然后删除添加的列:
awk '{printf "%d %s\n", length($1), $0}' file.txt | sort -n -k1,1 | sed -E -e 's/^[0-9]+ //'