2017-10-27 17 views
1

linuxの初心者で、勉強しようとしています。毎日作成される日付のテキストファイルがありますが、日付はすべて固定されているので、bashスクリプトを実行してテキストファイルの特定の日付を変更したいと思います。sedを使ってスペースを使ってフレーズを変更する

私は構文でsedを使って考えた:

sed -i 's/01 January 1970/27 October 2017/' 

動作していないようですが?

これは、ソースファイルの行です:

#01 January 1970:-JOB1011,Complete&Successful 

これは私がそのが変換されたら、それがどのように見えるしたいものです。

#27 October 2017:-JOB1011,Successful 

何かアドバイスしてください?

多くの感謝!

+0

あなたのコマンドは私の仕事です。 – Barmar

+0

'Complete&'をなぜ取り除かなければならないのですか?それはコピーエラーですか? – Barmar

+0

私のためにも、コマンドの最後に重要なファイル名が追加されています。おそらくそれはあなたの問題に関係しているでしょうか? – zzxyz

答えて

0

あなたのデータファイルは 'X' である場合、私は

sed -i 's/01 January 1970/27 October 2017/' x 

が動作することを期待:それはあなたが見るものはない場合

$ cat x 
#27 October 2017:-JOB1011,Complete&Successful 

、あなたはLinuxとSEDのどのバージョンを使用していますか?

$ sed --version 
GNU sed version 4.2.1 
... 
$ uname -srv 
Linux 2.6.32-696.6.3.el6.x86_64 #1 SMP Fri Jun 30 13:24:18 EDT 2017 
+0

sed(GNU sed)4.2.2 Linux 4.4.50-v7 +#970 SMP Mon Feb 20 19:18:29 GMT 2017 構文は日付変換で機能していますが、ステータスを変更するとステータス成功と成功から成功へ私はこれを得ます: 2017年10月27日Complete 1970年1月Successful:-JOB1011、Complete&Success これを紹介して、それをどうやって修正できますか? – JustAnotherInternetBum

+0

上記の@zzxyzは、&は特別な意味を持ち、\&でエスケープする必要があります。長期間実行されているプロセスをバックグラウンドに置くためによく使用されるので、プロンプトが戻ってくる。また、出力リダイレクション操作の一部です(「bash出力リダイレクト」を検索してください)。 –

関連する問題