abc.fil
。形式の内容を持つファイルがあります。 。フォーマットで出力するようにファイルをyyyymmdd.xyz.doc
望みます。誰でもこの問題を解決するのに役立ちますか?cat
abc.fil
20150127.xyz.doc
サンプルファイル:
$ cat abc.fil
o/p: yyyymmdd.xyz.doc
yyyymmdd.mno.dat
abc.txt
期待される出力:yyyymmdd
現在の日付が同じ順序で表示されることを望みます。
答え1
あなたが使用できるsed
:
sed "s/yyyymmdd/$(date '+%Y%m%d')/g" abc.fil
これにより、文字列がyyyymmdd
必要に応じてフォーマットされた現在の日付に置き換えられます。
編集する:
yyyymmdd
日付形式のみを置き換えるには、次のコマンドを使用します(GNU仮定)sed
。
sed -r "s/[12][0-9]{3}[01][0-9][0-3][0-9]/$(date '+%Y%m%d')/g" abc.fil
長い正規表現パターンの意味は次のとおりです。最初の数字は1または2([12]
)、次の3つの数字は[0-9]
0から9()の数字(年)です。月の場合、最初の数字は0または1になり、2番目の数字は0から9までの数字になります([01][0-9]
)。結局その日と同じでした。
答え2
> today=$(date +%Y%m%d)
> sed "s/yyyymmdd/${today}/g" abc.fil
o/p: 20150127.xyz.doc
20150127.mno.dat
abc.txt
答え3
努力する
cat abc.fil | sed s/yyyymmdd/`date +%Y%m%d`/