• ベストアンサー

dateコマンドのリダイレクト

Linuxを使っております。 echo "s/^/`date`,/g" > test.txtでは、日付が記録されますが、fmt形式と言うのでしょうか、例えば、曜日だけを記録する場合に、echo "s/^/`date -v1m`,/g" > test.txtとでもすればよいのか、%aとすればよいのか、よく分かりません。制御文字をエスケープする必要があるのかもしれません。どなたか、このあたりのテクニックを教えてください。

  • teo98
  • お礼率27% (68/244)

質問者が選んだベストアンサー

  • ベストアンサー
  • nazo-nazo
  • ベストアンサー率39% (17/43)
回答No.2

テクニックはないですが date "+%a" > test.txt or date "+%A" > test.txt で出来るのではないでしょうか。 (sed や grepを使用して複雑にするより、シンプルが一番だと思いますが) 最後に、質問する前にmanで調べましょう。

その他の回答 (1)

  • nightowl
  • ベストアンサー率44% (490/1101)
回答No.1

こんばんは。えっと、ここの箇所が何をしているのかよくわからないのですが。 >echo "s/^/`date`,/g" > test.txt sed のコマンドのようですが、それにしては sed 本体もないし、 入力ストリームもないし。「test.txt」の中身はどんなものなのでしょう? このファイルの内容を sed に後で渡すということでしょうか? date コマンドでは日付をいろいろなフォーマットで出力できます。 $ date "+%a" # 現在のロカール(ja_JP.eucJP)での曜日名 土 $ LC_ALL=C date "+%a" # C ロカールで Sat

参考URL:
http://www.linux.or.jp/JM/html/gnumaniak/man1/date.1.html

関連するQ&A

  • Windows XP Pro SP3 コマンドプロンプトの日時の表示に

    Windows XP Pro SP3 コマンドプロンプトの日時の表示について こんにちは。 以下質問させて下さい。 現在コマンドベースで日付を取得しようとしています。 C:\>echo %date% 上記コマンドを投げると下記のような形式で表示が返ってきます。 Wed 02/24/2010 しかし、地域と言語の設定に記述されている日付の形式(短い形式)では、 M/d/yyyy で設定されていて、曜日が出てくることは無いと思っていましたが、曜日まで出力されています。 この%date%は一体どこの書式を参照しているのでしょうか。 分かる方いらっしゃいましたらご教授下さい。

  • 名前を変更してコピーを行うには

    Linuxのシェルスクリプトで、test1.txtというファイルを本日の日付を加えてコピーするにはどのような構文になるのでしょうか? (例:test1.txt → test1_20130531.txt) #!/bin/sh TODAY=`date +%Y%m%d` cp test1.txt test1_$TODAY でしょうか?

  • コマンドプロンプトで2ヶ月前3ヶ月前の計算

    2ヶ月前 3ヶ月前の計算をしたいと思っております。 途中までわかるのですが例えば前年度という条件になったとき失敗してしまいます。 2ヶ月前: @echo off set YYYYMM=%DATE:~-10,4%%DATE:~-5,2% set /a TWOMONTHAGO=YYYYMM-2 if %TWOMANTHAGO:~-2%==00 set /a TWOMONTHAGO+=12-100 copy C:\test1\AAA%TWOMONTHAGO%.txt C:\test2\AAA3.txt if文が間違っているのはわかりますがどう計算したらよいか思いつきません・・・よろしくお願いします。 3ヶ月前: @echo off set YYYYMM=%DATE:~-10,4%%DATE:~-5,2% set /a THREEMONTHAGO=YYYYMM-3 if %THREEMONTHAGO:~-2%==00 set /a THREEMONTHAGO+=12-100 copy C:\test1\AAA%THREEMONTHAGO%.txt C:\test2\AAA3.txt

  • sedの正規表現について

    下記のsedコマンド正規表現の意味がわかりません どのような動きをしているのか教えて下さいm(__)m $ file_name="linux.txt" $ echo $file_name | sed -e "s/.*\.\([^.]*\)\$/\1/g" txt

  • sedコマンドの使い方 linux

    linux勉強中です。 やりたいことは以下です。 sample.txtというファイルには1行ごとにファイルパスが記載されています。 パスの中にhogeが複数含まれており、2番目のhoge以下のパスを取得したい。 (例)sample.txt home/user1/hoge/…/…/…/hoge/…/…/hoge/test.jsp home/user1/hoge/…/…/…/hoge/…/…/hoge/…/test2.jsp : の場合だと /hoge/…/…/hoge/test.jsp /hoge/…/…/hoge/…/test2.jspをアウトプットとして出したい。 以下の構文を書いたのですがこれだと最後のhoge以下のパスは取れるのですが真ん中のが取れず… grep 'hoge' sample.txt | sed s/'.*hoge'/'hoge'/g > output.txt sedで出来るのかなと思っているのですが、もっといいやり方などあればご教授ください。 よろしくお願いします

  • Diskpart のリダイレクトの質問です

    コマンド プロンプト画面で Diskpart モード時の画面出力をリダイレクトしてテキスト ファイルに残したいのですが、上手く行きません。次のコマンドで Log.txt ファイルに画面出力がリダイレクトされるはずなのですが、記録が全く残りません。   Diskpart /s Script.txt > Log.txt 何度トライしても成功せず困っています。支援をお願いします。なお、テストのために使用した Script.txt ファイルは、次のようになっています。   List Disk   List Volume   Exit

  • linuxのsedコマンド変数置換の質問です

    はじめまして。 要点だけになってしまいますが 教えていただきたいことがあってトピしました。 この構文では動きませんが僕がやりたいことは こういうイメージです。 111.txt 444 444 1.txt 111 222 333 444 a=`cat 111` echo $a 結果 444 444 1.txt | sed 's/222/$a/g'          ↑ ↑     置換対象 変数 word を $a に収まっている文字列で置換します。 結果 111 444 444 333 444 どなたかわかるかた教えてください。 よろしくお願いします。

    • ベストアンサー
    • Perl
  • sedコマンドで全ての2バイト文字を指定するには?

    こんにちは。 LinuxやWindows用のsedコマンドには、[・・・]という演算子によって、 特定の範囲の文字集合が指定できます。 例えば sed "s/[a-zA-Z]//g" test.txt というコマンドによって、test.txtから、アルファベットを削除する事ができます。 では、シフトJISコードにおいて、全ての2バイト文字を指定するにはどうすればよいのでしょうか? シフトJISコードでは、最初の漢字が「亜」であり、最後の漢字が「黑」らしいので、 sed "s/[あ-んア-ン亜-黑]//g" といったコマンドを試しましたが、これでは 「ー」「、」「。」「ぁぃぅぇぉ」といった文字が残ってしまいます。 結局は、シフトJISコードの2バイト文字の範囲を知りたいのですが、 調べてみても分かりませんでした。 ご存知の方がいらっしゃれば、情報提供をお願い致します。

  • posixでshellを起動したとき`date`コマンドなどが実行できません

    MS-DOSからposixでshellを起動して`date`を実行した場合、 「date: Command not found.」エラーになります。 Cシェルのウィンドウで実行した場合は、正常に動作します。DOS(posix)で起動した場合は、エラーになっています。なぜエラーになるのか原因がわからず困っています。 エラーとなる原因を教えていただけないでしょうか。 また、SFUで開発する上で参考となるページなどありましたら教えていただければ幸いです。 Shellの内容は以下のとおりです。 <シェル起動ファイルの内容> posix /u /c /bin/tcsh -f HOGE.csh <shell(HOGE.cshファイル)の内容> # echoで日付を表示 echo "`date +%y/%m/%d` `date +%H:%M:%S`" <環境> Windows2003サーバー SFU3.0

  • Windowsコマンドプロンプトについて

    お世話になっております。 簡単なバックアップスクリプトをbatで作っていたのですが、 正常に動作していたコマンドが急にループしたり、別のコマンドを実行しても前回のループするコマンドが実行されるようになってしまいました。 コマンドプロンプトを新規に立ち上げても治らず、再起動すれば治るのですが原因が知りたくて質問させていただきました。 実行したコマンドです。 ===================== robocopy src tar /E /LOG:%date:~0,4%-%date:~5,2%-%date:~8,2%.txt ===================== 実行結果は以下な感じです。 ===================== #### 正常時 > robocopy src tar /E /LOG:%date:~0,4%-%date:~5,2%-%date:~8,2%.txt 正常終了 > #### 再実行 > robocopy src tar /E /LOG:%date:~0,4%-%date:~5,2%-%date:~8,2%.txt (←実行コマンド) > robocopy src tar /E /LOG:%date:~0,4%-%date:~5,2%-%date:~8,2%.txt (ループ) > robocopy src tar /E /LOG:%date:~0,4%-%date:~5,2%-%date:~8,2%.txt (ループ) ・・・・ループ #### 引数なしで実行 > robocopy  (←実行コマンド) > robocopy src tar /E /LOG:%date:~0,4%-%date:~5,2%-%date:~8,2%.txt (ループ) > robocopy src tar /E /LOG:%date:~0,4%-%date:~5,2%-%date:~8,2%.txt (ループ) ・・・・ループ #### 別コマンドで実行 > echo "test" 正常終了 > ===================== 環境は以下です。 ===================== Windows 10 Pro Version 1909 OS build 18363.1198 ===================== よろしくお願いいたします。