в то время как на bash я попытался удалить 3 последних столбца файла, используя:
head -n -3 file> file
но файл выходит пустым. Я могу обойти это, но я хотел бы знать, что вызывает это.
Огромное спасибо!
в то время как на bash я попытался удалить 3 последних столбца файла, используя:
head -n -3 file> file
но файл выходит пустым. Я могу обойти это, но я хотел бы знать, что вызывает это.
Огромное спасибо!
Давайте разберемся, что делает эта команда.
> file
Это открывает file
для записи и усекает его.
head -n -3 file
Это читает все, кроме последних 3 строк file
. Да, тот же file
вы урезали на шаге 1.
То, что вы пытаетесь сделать, это встроенная замена, которая на самом деле невозможна без обходных путей. По вашей команде исходный файл перезаписывается, потому что он уже открыт и очищен при отправке команды.
Вот пара идей:
Вы можете использовать Vim в режиме Ex:
ex -sc '-2,d|x' file
-2,
выберите последние 3 строки
d
удалить
x
сохранить и закрыть