2013-09-25 70 views
1

我的腳本中有一個循環,它會將一個電子郵件地址列表附加到文件「$ CRN」。如果這個腳本再次執行,它會附加到這個舊列表。我希望它用新列表覆蓋而不是附加到舊列表。如果需要,我可以提交我的整個腳本。我知道我可以測試「$ CRN」是否存在,然後刪除文件,但我對其他一些建議感興趣?謝謝。覆蓋文件,然後附加

for arg in "[email protected]"; do 
      if ls /students | grep -q "$arg"; then 
        echo "${arg}@mail.ccsf.edu">>$CRN 
        ((students++)) 
      elif ls /users | grep -q "$arg$"; then 
        echo "${arg}@ccsf.edu">>$CRN 
        ((faculty++)) 
    fi 

回答

2

更好地做到這一點:

CRN="/path/to/file" 
:> "$CRN" 

for arg; do 
     if printf '%s\n' /students/* | grep -q "$arg"; then 
       echo "${arg}@mail.ccsf.edu" >> "$CRN" 
       ((students++)) 
     elif printf '%s\n'/users/* | grep -q "${arg}$"; then 
       echo "${arg}@ccsf.edu" >> "$CRN" 
       ((faculty++)) 
     fi 
done 
+0

新增'grep -qw'個案 –