0
新しいbachスクリプトが追加されました。次のコードは、コマンドラインで入力した名前を検索し、outputLog.txt .ifの入力文字列を検索して、その名前文字列の現在のシステム時刻を更新するコードです。コマンドラインで出力テキストファイルの文字列をコマンドライン引数として更新中にバッチスクリプトの問題が発生する
[ルート@ localhostのデスクトップ]#./myscript.sh NAME1
Logone2.txt
name1 = Tue Jan 20 14:00 19 IST 2012
name2 =Tue Jan 20 14:05 19 IST 2012
name3 = Tue Jan 20 14:20 19 IST 2012
name4 =Tue Jan 20 14:45 19 IST 2012
私はNAME1を入力しようとしているときに私の問題があり、それはそのISも、現在のシステム時刻で更新されます最後のエントリとして追加します。
Eg:Logone2.txt
name1 = Tue Feb 20 14:00 19 IST 2012
name2 =Tue Jan 20 14:05 19 IST 2012
name3 = Tue Jan 20 14:20 19 IST 2012
name4 =Tue Jan 20 14:45 19 IST 2012
name1 = Tue Feb 20 14:00 19 IST 2012 (appended entry)
それが名前を更新し、Logone2.txtで発見され、コマンドラインから入力された文字列Logone2.txt.IF(NAME1)に見つからない場合、私は、現在のシステム時刻の文字列を追加したい
現在のシステム時刻は次のようになります。ここで
Eg:Logone2.txt
name1 = Tue Feb 20 14:00 19 IST 2012
name2 =Tue Jan 20 14:05 19 IST 2012
name3 = Tue Jan 20 14:20 19 IST 2012
name4 =Tue Jan 20 14:45 19 IST 2012
は、私は右のそれを得た場合、私の最初のアイデアは、SEDとNAME1置き換えるファイル全体を書き換えることである
#!/bin/bash
echo "${1} $(date)" >> /root/Desktop/scripts/Logone2.txt
fgrep "${1}" /root/Desktop/scripts/Logone2.txt && \
sed -i "/${1}/ s/.*/${1} = $(date)/" /root/Desktop/scripts/Logone2.txt || \
echo "${1} $(date)" >> /root/Desktop/scripts/Logone2.txt
お困りですか? – kev