我有一个bash脚本,我想用它来替换一些字符串的行,并在行尾添加一个日期:
#! /bin/bash
today=`date '+%Y_%m_%d__%H_%M_%S'`;
sed -i '3s/.*/CONFIG_LOCALVERSION=/' ~/Desktop/file1 file2 ...
另外,我是否可以为一系列以#34; file"?
等字符串开头的文件执行此操作答案 0 :(得分:0)
要在bash中使用变量扩展,变量必须是非引用或双引号。单引号将阻止扩展。另一方面,如果您的目录*
包含以3s/.*/
开头的文件,则您希望避免在3s
中展开.
。
幸运的是,您可以将字符串链接在一起,这样就可以了
#!/bin/bash
today=$(date '+%Y_%m_%d__%H_%M_%S');
sed -i '3s/.*/CONFIG_LOCALVERSION='"$today"'/' ~/Desktop/file{1,2,Foo}
我可以为一系列以“file”字符串开头的文件吗?
glob ~/Desktop/file{1,2,Foo}
将扩展为~/Desktop/file1 ~/Desktop/file2 ~/Desktop/fileFoo
。如果您希望将桌面上的所有文件与名为“file”的名称进行匹配,请改用~/Desktop/file*
。