我有一个字典单词列表,我需要创建一个命令,按照UNIX中特定单词的字符串位置对单词进行排序 例如我有以下行
chemistry
mistery
alchemist
warmish
如果我创建了一个命令,请说findort并将其作为
执行
findort mis
我的输出应该是
mistery
chemistry
warmish
alchemist
答案 0 :(得分:1)
只使用标准shell实用程序,您可以这样做:
awk -v search="mis" '{ print index($0, search), $0 }' input.txt | sort -k1,1n -k2,2 | cut -d' ' -f2-
如果您的输入更通用(即不是单字行),这可能会使您的行中的空格有点混乱,但考虑到您所做的示例,这应该不是问题。如果是,您需要使用自定义分隔符进行一些操作。
编写一些Python或Perl代码来完成同样的事情并不难。