2016-03-20 19 views
0

Boru sınırlandırılmış bir dosya info.txt dosyası var, bana en yüksek son ekin nasıl alınacağını ve üzerine desen ekleyerek nasıl girdi ekleyeceğini bana nasıl anlatabilirsin?
en yüksek sayıyı al ve sonra yeni dosyaya bir sonraki numarayı yazdır

info="$HOME/info.txt" 
echo "Input the pattern: " 
read pattern 

awk '/pattern/{ print $0 }' $info >> $HOME/temp1.$$ 
sed 's/MICRO_AU_FILE//g' $HOME/temp1.$$ 
##then count highest num but i think not good approach 
##if got he highest num then print next number 

for ACC_NUM in `cat acc` 
    do 
echo "$pattern-FILE$Highestsufix|server|$ACC_NUM*| >> $HOME/tempfile.$$ 
cat $HOME/tempfile.$$ >> $info 
done 
fi 

info.txt

MICRO_AU-FILE01|serve|12345 
MICRO_AU-FILE02|serve|23456 
MICRO_AU-FILE04|serve|34534 
MICRO_PH-FILE01|serve|56457 
MICRO_PH-FILE02|serve|12345 
MICRO_BN-FILE01|serve|78564 
MICRO_BN-FILE03|serve|45267 

acc

11111 
22222 

çıkışı: my desen MICRO_AU

ise
MICRO_AU-FILE01|serve|12345 
MICRO_AU-FILE02|serve|23456 
MICRO_AU-FILE04|serve|34534 
MICRO_PL-FILE01|serve|56457 
MICRO_PL-FILE02|serve|12345 
MICRO_BN-FILE01|serve|78564 
MICRO_BN-FILE03|serve|45267 
MICRO_AU-FILE05|serve|11111 
MICRO_AU-FILE06|serve|22222 

cevap

0
Ben son ekleri ayıklamak ediyorum

, onları sıralamak sayısal olarak artan ve en yüksek olanı al. giriş örnekte olduğu gibi düzenli ise çizgilerin yapısı değişebilir, bu da tadı için uygun sayı seçicisini (cut -c 14,15) uyarlamak zorunda kalacak, sadece

HIGHEST_INDEX=$(cut -c 14,15|sort -nr|head -n 1) 

olurdu.

GÜNCELLEME: Sadece Bash, zsh veya ksh ile kabuk değil soruyla etiketlendi olduğunu görüyoruz. Eğer programı Bourne Shell da çalıştırmak gerekiyorsa, açıkça ifade eğer hangi kabuk üzerinde, söz bu tip en iyisidir Genelde

HIGHEST_INDEX=`cut -c 14,15|sort -nr|head -n 1` 

kullanmak zorunda (ler) Programın çalışması gerekiyor . Bu konuda ne kadar spesifik olursanız, önerebileceğimiz daha iyi bir çözüm. Örneğin, bir sonraki daha yüksek sayıyı almak (HIGHEST_INDEX sonra) diğerlerinde olduğu gibi Bourne kabuğunda daha karmaşıktır.

+0

Bourne Shell'i kullanmaya çalışıyorum, komutu denedim ve iyi görünüyor, ancak rakamların konumu her zaman 14,15 değil, hangi modele göre değişir. Bahsettiğin gibi yaklaşmış gibi kullanacağım. Teşekkürler, – Nympha

İlgili konular