Чтобы использовать переменное расширение в bash, переменные должны быть не кавычками или двойными кавычками. Одиночные кавычки будут препятствовать расширению. С другой стороны, вы бы хотели избежать расширения *
в 3s/.*/
, если у вас есть каталог 3s
содержащий файлы, начинающиеся с .
.
К счастью, вы можете просто цепные строки вместе, так что вы можете сделать
#!/bin/bash
today=$(date '+%Y_%m_%d__%H_%M_%S');
sed -i '3s/.*/CONFIG_LOCALVERSION='"$today"'/' ~/Desktop/file{1,2,Foo}
и я могу это сделать для диапазона файлов, которые начинаются со строки, как «файл»?
glob~/Desktop/file{1,2,Foo}
будет расширяться ~/Desktop/file1 ~/Desktop/file2 ~/Desktop/fileFoo
. Если вместо этого вы хотите сопоставить все файлы на рабочем столе с именем, начинающимся с «файла», вместо этого используйте ~/Desktop/file*
.
Большое вам спасибо;) –
thx, что, если я хочу найти строку в некоторых файлах и заменить нужную строку? –
Можете ли вы уточнить? –