1
私はsedの日付の値をsedにパイプする方法は?
cat template.html | sed s/\\@\\@DATENUMBER\\@\\@/date +"%Y%m%d"/g
で置換語としてパイプさ
date + "%Y%m%d"
の価値を持っていると思います。しかし、これは許可されていません。日付の値を抽出して正しくパイプするにはどうすればよいですか?
私はsedの日付の値をsedにパイプする方法は?
cat template.html | sed s/\\@\\@DATENUMBER\\@\\@/date +"%Y%m%d"/g
で置換語としてパイプさ
date + "%Y%m%d"
の価値を持っていると思います。しかし、これは許可されていません。日付の値を抽出して正しくパイプするにはどうすればよいですか?
試してみてください。
sed "s/@@[email protected]@/$(date +"%Y%m%d")/g" template.html
注:
sed
は、引数としてファイル名を取りますのでcat
ための必要はありません。
あなたは@@[email protected]@
のようなルックスを交換したいテキストは、それらすべてのバックスラッシュの必要がない場合:@
は、シェル・アクティブ文字やsedのアクティブな文字でもないし、エスケープする必要はありません。
date
コマンドを実行する場合は、コマンド置換($(...)
)を使用する必要があります。
sed s
コマンドの全体は、シェルが単語分割を行わないように引用符で囲む必要があります。
ありがとうございます!この文脈で「単語分割」とは何を意味しますか? – byInduction
ようこそ。元のコマンドの場合、 'sed'は完全な置換コマンドを表示しません。代わりに 's/\\ @ \\ @ DATENUMBER \\ @ \\ @/date'を第1引数として、'%1%m%d "/ g'を第2引数として見ます。スペースを含むものがあり、そのコマンドに単一の引数として見たい場合はいつでも引用符で囲む必要があります。 – John1024
単語分割の詳細については、たとえば[この回答](http://stackoverflow.com/a/18498494/3030305)を参照してください。高度な議論については、[このFAQ](http://mywiki.wooledge.org/WordSplitting)を参照してください。 – John1024