2015-06-02 37 views
0

我有一個bash腳本,我想利用它來用字符串替換一些線條和添加日期到行的末尾:我該如何替換一個包含變量的行?

#! /bin/bash 

today=`date '+%Y_%m_%d__%H_%M_%S'`; 

sed -i '3s/.*/CONFIG_LOCALVERSION=/' ~/Desktop/file1 file2 ... 

另外,我能做到這一點的一系列文件,這些文件從像「文件」這樣的字符串開始?

回答

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} 

,我可以做到這一點爲包含「文件」的字符串開始了一系列的文件?

~/Desktop/file{1,2,Foo}將擴大到~/Desktop/file1 ~/Desktop/file2 ~/Desktop/fileFoo。相反,如果您想將桌面上的所有文件與名稱以'file'開頭的文件相匹配,請改爲使用~/Desktop/file*

+0

非常感謝你;) –

+0

thx,如果我想在某些文件中找到一個字符串並用所需的字符串替換該怎麼辦? –

+0

你能詳細點嗎? –

相關問題