Задача менее очевидна, чем кажется на первый взгляд.
Либо вы используете код от Slyx и затем удаляете ненужную новую строку с sed $!N;$s/\n//;P;D
, либо вы находите строку, которая, как известно, не является частью обоих файлов, скажем, =snip=
и делаете
sed '1h;1,/=snip=/d;$G;s/\n/ /' file1 <( echo =snip=) file2
Вывод может быть передан в другой файл, а затем скопирован в file2
(, даже если ваш вариант sed
имеет параметр -i
, это не будет работать при использовании частей двух файлов ).
Что делает код?
1h
сохраняет строку 1 в области хранения («буфер обмена» sed
), чтобы добавить ее позже 1,/=snip=/d
удаляет все от строки 1 до строки маркера, поэтому будет напечатано только file2
$G
добавляет сохраненную строку из пробела к последней строке($
)s/\n/ /
заменяет встроенный символ новой строки пробелом. Это произойдет только в последней строке после добавления пробела file1 <( echo =snip=) file2
— это файлы, переданные вsed
:сначала file1
для извлечения первой строки, затем виртуальный файл, содержащий =snip=
, чтобы узнать, когда заканчивается файл 1, наконецfile2
На самом деле, неплохо научиться sed
трюкам.
etc_t
— это тип SELinux, применяемый по умолчанию как часть контекста SELinux к файлам в каталоге /etc, которые -доступны для чтения всем, но принадлежат и могут изменяться только пользователем root-@fpmurphy
Если вам нужно изменить эти файлы конфигурации с помощью других приложений/демонов или вам нужно скрыть эти файлы от всего остального, вам действительно может понадобиться собственный контекст.