sed
раствор:
username="test.test"
sed "s/ *$username */ /" file
Выход:
@some_group1 = take.me bake.shake push.pull
@some_group2 = take.me bake.shake push.pull
@some_group3 = take.me bake.shake push.pull
Не было указано, в какой оболочке (bash, fish, zsh, csh )вы хотите использовать какой-либо подстановочный знак при удалении файлов.
Поскольку bash
— известная оболочка, я утверждаю, что можно было бы просто использовать эту команду:
rm -- cheatsheetold.*
обратите внимание, что подстановочный знак *
используется после --
, чтобы избежать ошибок без отступов из-за расширений оболочки bash
командная строка env | grep 'SHELL'
может показать вам используемую оболочку. Я также протестировал командную строку в более сокращенной оболочке POSIX dash
.
Я просто не использую никакие другие оболочки (, такие как csh и tsh или fish ), поэтому я не могу сказать, как там работает подстановка.
Другой способ получить представление о том, какая оболочка запущена, может заключаться в следующем. ps -p $$
где $$
должен быть PID текущего процесса (оболочки )и ps инструмент для вывода списка процессов, ограниченных PID текущей оболочки.
Вы можете использовать подстановочный знак, но будьте очень осторожны, так как он может удалить другие файлы, которые могут совпадать.
rm cheatsheetold.*
Приведенная выше команда удалит любой файл, имя которого начинается с cheatsheetold.
и за которым следует что угодно, то есть любое расширение.
Unix не имеет файлов -имя -расширения, как и Microsoft Windows (после Windows ME. Однако проводник файлов -по-прежнему имеет концепцию ). Что вам нужно сделать, так это найти все файлы, начинающиеся с... (в вашем случае, начинающиеся с cheatsheetold.
.
Вы можете сделать это с помощью cheatsheetold.*
. Затем он передаст список файлов в rm
. Вы можете использовать его с любой командой. Это не rm
вещь.
Тренируйтесь сecho cheatsheetold.*