Примечание. Команда :unset не удаляет псевдонимы.
function move_to_trash () {
cp -vr "$@" "/home/`whoami`/backup/" && command rm -rf "$@";
}
alias rm='move_to_trash'
Этот код работает для меня, если я хочу удалить файл или каталог.
Предполагая, что в остальном файл является правильно -сформированным XML-документом, вы можете использовать xmlstarlet
для переформатирования документа. Если сделать это с опцией --recover
, утилита выведет первый тег верхнего уровня -и все его содержимое, но отбросит любые другие теги верхнего уровня -.
Пример:
$ xmlstarlet fo --recover --omit-decl --noindent file >newfile
file:9.1: Extra content at the end of the document
<HTML>
^
$ cat newfile
<HTML>
<HEAD>
several header lines
</HEAD>
<BODY>
hundreds of lines of content
</BODY>
</HTML>
Просто сделайте наоборот :напечатайте все строки, но завершите работу при первом появлении</HTML>
sed -ni 'p;/<\/HTML>/q' file
Используйте без -i
для первой проверки.
Или проще:
sed -i '/<\/HTML>/q'
Та же идея, что и ответ @FelixJN , но с использованием любого awk в любой оболочке на каждом компьютере UNIX:
$ awk '{print}; /<\/HTML>/{exit}' file
<HTML>
<HEAD>
several header lines
</HEAD>
<BODY>
hundreds of lines of content
</BODY>
</HTML>
Сделайте это awk -i inplace 'script' *
, если вы хотите выполнять редактирование "на месте" всех ваших файлов одновременно и иметь GNU awk.