Вы можете использовать sed
для замены каждого вхождения строки, как описано здесь:
sed -i 's/\£/\$/g' FILENAME
Опция -i
сообщает sed
для работы с файлом, s
является оператором для замены строк, \£
- это строка, которую нужно заменить, \$
- это строка, заменяющая каждый символ $
(\
экранирует знаки, так как они являются специальными символами), а g
означает замену каждого экземпляра.
EDIT: опция -i
не работает на Solaris, вы должны использовать этот обходной путь.
.
Используется bzip2
, который не является архиватором файлов , поэтому tar
по существу действует как архиватор файлов
и bzip2
объединяет их.
Например, архивирование коллекции файлов с помощью tar, а затем сжатие полученного архивного файла с помощью gzip приводит к созданию файла с расширением .tar.gz.
Однако этот подход имеет недостаток, как указано во вики-статье:
Извлечение или изменение одного файла затруднено. Для извлечения одного файла требуется распаковка всего архива, что может занять много времени и места.
Поэтому я предлагаю использовать только .tar
или .zip
или .rar
, если вы часто извлекаете один файл.
BASH _ ENV
считывается только в неинтерактивной оболочке и только в том случае, если эта оболочка является bash (и не называется под именем sh
). Интерактивная оболочка без входа в систему не ищет $ BASH _ ENV
:
$ export BASH_ENV=/home/cuonglm/bash-env.sh
$ bash -lci '. test.sh'
QWERTY
$ bash -lc '. test.sh'
BASH_ENV read
QWERTY
$ bash -ci '. test.sh'
QWERTY
$ bash -c '. test.sh'
BASH_ENV read
QWERTY
Отсутствует стандартный файл, выполняемый в неинтерактивной оболочке для пользователя. Вы должны установить его в отдельном файле, затем источник:
bash -c '. ~/.profile; echo 123'
Или вы можете установить его в какой-либо системный конфигурационный файл, как /etc/environment
или /etc/bashrc.bashrc
.
При использовании GNU grep
и xargs
:
grep -rlZ search-text some/dir/ | xargs -r0 cat > dump.test
-l
необходимо перечислить файлы, содержащие по крайней мере одну строку, соответствующую search-text
. -Z
- печать этой строки с ограничением NUL, чтобы ее можно было безопасно передать в xargs -0
.
-r
для поиска во всех файлах в некоторые/dir/
рекурсивно.
POSIXly:
find some/dir -type f -size +0 -exec grep -q search-text {} \;
-exec cat {} + > dump.test
Это будет менее эффективно, так как это означает выполнение одной команды grep
на один непустой файл.