2017-10-17 239 views
0

我的腳本有問題。我必須使用參數運行腳本。例如:運行帶參數的bash腳本

./birhday 10 2000 

,我應該得到這樣的:

"at 10 2000 was born Mark,Jordan" 

的名稱必須從列表中加載,例如:

ListOfNames:

2000 
01 Jane,Marry 
02 Jason,Ted 
. 
. 
. 
12 Stephen,Victor 

而且我不知道該怎麼做。有誰能夠幫助我?

+0

前綴代碼/數據有四個空格。請看[編輯幫助](http://stackoverflow.com/editing-help)。 – Cyrus

回答

0

其實我想你的數據格式改成這樣:

2000-01 Jane,Marry 
2000-02 Jason,Ted 
. 
. 
. 
2000-12 Stephen,Victor 

這將真正簡化腳本。在這種情況下,這將是如此簡單:

#!/bin/bash 

if [ $# -lt 2 ] 
then 
    echo "Usage format: $(basename $0) MM YYYY" 
    exit 1 
else 
    NAMES=$(grep $2-$1 ListOfNames | awk '{print $2}') 
    echo "at $1 $2 was born $NAMES" 
fi 
0

你可以試試這個太

seen=$(sed -n '/'"$2"'/{:A;n;/'"$1"'/!bA;s/^[^ ]* //;p;q}' ListOfNames) 
[ -n "$seen" ] && echo "at $1 $2 was born $seen"