Linux 使用sed更改带有空格的短语
我是linux的新手,正在努力学习。我有一个文本文件,其中包含每天生成的日期,但这些日期都是固定的,因此我希望通过运行bash脚本来更改文本文件中的特定日期 我认为将sed与语法结合使用:Linux 使用sed更改带有空格的短语,linux,bash,sed,Linux,Bash,Sed,我是linux的新手,正在努力学习。我有一个文本文件,其中包含每天生成的日期,但这些日期都是固定的,因此我希望通过运行bash脚本来更改文本文件中的特定日期 我认为将sed与语法结合使用: sed -i 's/01 January 1970/27 October 2017/' 但它似乎不起作用 这是源文件行: #01 January 1970:-JOB1011,Complete&Successful 这就是我希望它一旦被改造后的样子: #27 October 2017:-JOB10
sed -i 's/01 January 1970/27 October 2017/'
但它似乎不起作用
这是源文件行:
#01 January 1970:-JOB1011,Complete&Successful
这就是我希望它一旦被改造后的样子:
#27 October 2017:-JOB1011,Successful
有什么建议吗
非常感谢 如果您的数据文件是“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
如果您的数据文件是“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
您的命令对我有效。为什么要删除
Complete&
?这是一个复制错误吗?对我来说也适用,在命令末尾添加了重要的文件名。也许这与你的问题有关?我试着改变日期,结果成功了!但是,当我包含带有符号的状态时,我认为我犯了一个错误。如果你想要一个文本&
,你需要避开它<代码>\&您的命令对我有效。为什么要删除Complete&
?这是一个复制错误吗?对我来说也适用,在命令末尾添加了重要的文件名。也许这与你的问题有关?我试着改变日期,结果成功了!但是,当我包含带有符号的状态时,我认为我犯了一个错误。如果你想要一个文本&
,你需要避开它\&
sed(GNU sed)4.2.2 Linux 4.4.50-v7+#970 SMP Mon Feb 20 19:18:29 GMT 2017语法适用于日期转换,但是如果我更改状态,并且状态从成功变为完成&成功,我会得到以下信息:#2017年10月27日完成1970年1月1日成功:-JOB1011,完整和成功是“&”引入了这一点,我如何纠正它?如上所述,@zzxyz有一个特殊的含义,需要用\&来转义。它通常用于将长时间运行的进程放在后台,以便返回提示。它也是一些输出重定向操作(搜索“bash输出重定向”)sed(GNU sed)4.2.2 Linux 4.4.50-v7+#970 SMP Mon Feb 20 19:18:29 GMT 2017语法用于日期转换,但是,如果我改变状态,并且状态从成功变为完成&成功,我会得到以下信息:#2017年10月27日完成1970年1月1日成功:-JOB1011,完成&成功是引入此的“&”,我如何纠正它?正如@zzxyz所述,&具有特殊的意义,需要用\&”转义。它通常用于将长时间运行的进程放在后台,以便返回提示。它也是一些输出重定向操作的一部分(搜索“bash输出重定向”)