请指教如何根据最后一个单词 PATH 中的前两个字符对文件进行排序(使用 sort 命令)
/dir/dir/dir/LAST_WORD_PATH
例子:
如果下面的路径是
/Config/EMA/M5/Hatki Tekom/Customer Files/fSE-TMOLE.txt
所以最后一个单词PATH应该是
fSE-TMOLE.txt
目标是对“last word PATH”中的前两个字符进行排序
然后前两个字符是(来自fSE-TMOLE.txt)
fS
完整示例
排序前
/Config/EMA/M5/Cmo Buria Mobile/dzs Bulia Mole.txt
/Config/EMA/M5/Hatki Tekom/Customer Files/fAE-TMOLE.txt
/Config/EMA/M5/Cmo Buria Mobile/dos Bulia Mole.txt
/Config/EMA/M5/Cmo Bgaia Mobile/Fustoer files/Backup/Cos Buia Mole-2.txt
/Config/EMA/M5/VFONE Roia/Cbdne.ro.txt
/Config/EMA/M5/TEKOM SRJA/IELOM SRJA.txt
/Config/EMA/M5/VP Moe/Bobile.txt
排序后
/Config/EMA/M5/VP Moe/Bobile.txt
/Config/EMA/M5/VFONE Roia/Cbdne.ro.txt
/Config/EMA/M5/Cmo Bgaia Mobile/Fustoer files/Backup/Cos Buia Mole-2.txt
/Config/EMA/M5/Cmo Buria Mobile/dos Bulia Mole.txt
/Config/EMA/M5/Cmo Buria Mobile/dzs Bulia Mole.txt
/Config/EMA/M5/Hatki Tekom/Customer Files/fAE-TMOLE.txt
/Config/EMA/M5/TEKOM SRJA/IELOM SRJA.txt
最佳答案
这是一种方法:
#!/bin/bash
while read f
do
b=$(basename "$f") # Get basic name of file without path
b2=${b:0:2} # Extract first 2 letters
echo $b2:$f # Output for awk to read with colon separator
done < file | sort -f | awk -F: '{print $2}'
关于linux - 如何根据最后一个单词PATH中的前两个字符对文件进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24798281/