Как продолжать перезаписывать содержание файла вместо того, чтобы добавить к нему

Можно сделать вставку Ctrl+V путем изменения настроек в меню Edit-> Keyboard Shortcuts.

Но Вы не могли бы хотеть делать это, потому что Ctrl+V обычно используется Вашей оболочкой в качестве способа ввести символы буквально. Например, Вкладка обычно заставляет оболочку попробовать к полному вкладкой имя файла. Если необходимо на самом деле ввести вкладку, Вкладка Ctrl+V позволяет Вам сделать это.

Можно сказать удару использовать что-то еще. Посмотрите Команды удара для Изменения текста для некоторых деталей. Ctrl+Q или \мог бы работать также. Или это могло бы просто закрыть Ваш терминал.:-)

Я не думаю, что другие вещи возможны.

Как альтернатива, Вы хотели бы пробовать Ctrl+Ins за копию и Shift+Ins для вставки.

По умолчанию Shift+Ins вставляет то, что Вы выбираете со своей мышью, даже если Вы не копируете его.

Я изменяю его, чтобы сделать нормальную копию буфера обмена через Редактирование-> Горячие клавиши.

Ctrl+Ins и Shift+Ins на самом деле работают в большинстве приложений, но я не думаю, что многие люди знают об этом.

2
04.10.2011, 16:57
2 ответа

Вам нужна отдельная программа, чтобы очистить и записать новый файл, так как nc не предлагает той опции.

nc -l 7007 | while true; do
    while read line; do
      echo "$line" > /tmp/test
    done
done

Можно сохранить все после канала в отдельном сценарии, который принимает путь к файлу.

save-last-line.sh

while true; do
    while read line; do
        echo "$line" > $1
    done
done

Затем это просто:

nc -l 7007 | save-last-line.sh /var/tmp/test.log

Вы захотите добавить проверки для проверки $1 перезаписываемо и выставочное использование когда $1 не указан.

2
27.01.2020, 22:15
  • 1
    Лучше используйте IFS= read -r line избегать проблем. –  Stéphane Gimenez 04.10.2011, 19:59

command > /path/to/file очистит файл и запишет вывод command к нему.

Когда Вы не хотите очищать файл, это command >> /path/to/file.

Одна вещь знать noclobber опция в Вашей оболочке. Это будет препятствовать тому, чтобы Вы очистили файлы с > оператор. Можно переопределить опцию при помощи >! вместо этого, или можно сбросить его с set +o noclobber.

Попробуйте это в своей командной строке:

# echo "Hello, " > /tmp/test
# cat /tmp/test
  Hello
# echo "U&L" > /tmp/test
# cat /tmp/test
  U&L
# echo "Hello," > /tmp/test
# echo "U&L" >> /tmp/test
# cat /tmp/test
  Hello,
  U&L
# 
0
27.01.2020, 22:15
  • 1
    я уже попробовал это. Но не сделал работавший. Его всегда создание "samfile.log", больше и больше, я хочу иметь последнее содержание. (я попробовал редиректор то же как Ваш). –   04.10.2011, 14:04
  • 2
    Вы корректны. Но мне был нужен nc-l в реальном времени чистый то же как > редиректор –   04.10.2011, 14:16
  • 3
    Посмотрите мои обновления выше. цель –   04.10.2011, 14:19

Теги

Похожие вопросы