按每个单词UNIX中的字符串位置排序

时间:2015-06-24 16:48:05

标签: sorting unix

我有一个字典单词列表,我需要创建一个命令,按照UNIX中特定单词的字符串位置对单词进行排序 例如我有以下行

chemistry
mistery
alchemist
warmish

如果我创建了一个命令,请说findort并将其作为
执行 findort mis
我的输出应该是

mistery
chemistry
warmish
alchemist

1 个答案:

答案 0 :(得分:1)

只使用标准shell实用程序,您可以这样做:

awk -v search="mis" '{ print index($0, search), $0 }' input.txt | sort -k1,1n -k2,2 | cut -d' ' -f2-

如果您的输入更通用(即不是单字行),这可能会使您的行中的空格有点混乱,但考虑到您所做的示例,这应该不是问题。如果是,您需要使用自定义分隔符进行一些操作。

编写一些Python或Perl代码来完成同样的事情并不难。