Как очистить текст в файле?

В моем случае это было довольно просто: все, что мне нужно было сделать, это изменить предпочтение в nautilus, переключившись с «показать эскизы: только локальные файлы», чтобы «показывать эскизы: всегда» (мои JPG, расположенные на моем смартфоне weren показывается). Я нашел проблему благодаря Aswn, практически, так что большие пальцы руки для него / нее.

1
задан 13 December 2013 в 16:05

8 ответов

Самый простой способ - обрезать файл, чтобы перенаправить вывод команды no-op оболочки (:) в файл, который вы хотите удалить.

: > hello.txt
17
ответ дан 24 May 2018 в 14:10
  • 1
    Вероятно, это не самый простой (по сравнению с только >), но самый быстрый из них. Интересно, почему он не упоминался ни в одном из ответов этого высокоразвитого вопроса? .. возьмите +1. – heemayl 15 November 2015 в 05:49

Я также собираюсь использовать перенаправление, например, ответ rajagenupula. Но есть немного больше гибкости. Откройте терминал и введите

cat > hello.txt

И нажмите Ctrl + C. Он уничтожит предыдущий файл. Если вы хотите, чтобы это было очень хорошо.

Если вы хотите, вы можете сделать что-то еще после вытирания файла. Таким образом, вы можете не только стереть файл без открытия, но и написать несколько строк с соответствующим форматированием в файле. Скажем, вы хотите написать «Ubuntu - лучшая ОС» после очистки файла, просто сделайте

cat > hello.txt
Ubuntu is the 
best OS

Затем нажмите Ctrl + C. Теперь предыдущий файл уничтожается. В то же время слова есть в двух строках, когда я их помещал.

См. Пример:

11
ответ дан 24 May 2018 в 14:10
  • 1
    привет спасибо за ответ. так мало, но работа должна быть выполнена сразу после этого также & amp; но все же интересно. + 1 – Ten-Coin 13 December 2013 в 16:24
  • 2
    > означает перенаправление. cat > file напишет stdout в файл, перезаписав любой существующий файл. – souravc 13 December 2013 в 23:08

Я должен делать это все время с файлами журнала. Самый простой способ, который я нашел, - это следующая команда:

cat /dev/null > hello.txt

Это удаляет allo содержимого файла и оставляет вас с пустым файлом без необходимости его открытия в редакторе, выберите текст , любой из этих вещей. Более конкретно, что он делает, это заменить содержимое файла содержимым «/ dev / null» или ничего.

Единственное предостережение в том, что пользователь, с которым вы в настоящий момент зарегистрировались, должен иметь разрешение на запись в указанный файл.

8
ответ дан 24 May 2018 в 14:10
  • 1
    Спасибо за ответ. Добавьте пример, чтобы он выглядел более красиво. + 1 – Ten-Coin 13 December 2013 в 23:17

Если файл был создан с именем hello.txt и ему были предоставлены некоторые тексты, то приведенная ниже команда в terminalctrl + alt + t удалит весь текст в файле hello.txt,

echo "" > hello.txt
6]

5
ответ дан 24 May 2018 в 14:10
  • 1
    Спасибо, что ответили +1. разложите его с некоторым примером, пожалуйста, чтобы он выглядел более приятным. – Ten-Coin 13 December 2013 в 16:23

Другой подход - cp /dev/null к файлу

xieerqi:$ cat testFile.txt                                                                                        
Filesystem     1K-blocks     Used Available Use% Mounted on
/dev/sda1      115247656 83100492  26269816  76% /
none                   4        0         4   0% /sys/fs/cgroup
udev             2914492        4   2914488   1% /dev
tmpfs             585216     1152    584064   1% /run
none                5120        0      5120   0% /run/lock
none             2926072    98096   2827976   4% /run/shm
none              102400       76    102324   1% /run/user

xieerqi:$ cp /dev/null testFile.txt                                                                               

xieerqi:$ cat testFile.txt

xieerqi:$ 
2
ответ дан 24 May 2018 в 14:10

Итак, я вижу, что для этого находят много переадресаций;)

Немного другой подход с комбо: rm & amp; touch

rm hello.txt && touch hello.txt

(да ... еще один чит!)

Итак, с этой командой комбо файл hello.txt не был открыт и, в конце концов, у вас все еще есть файл hello.txt на своем месте с очищенным содержимым. Так же, как вы хотели!

0
ответ дан 24 May 2018 в 14:10
  • 1
    Нехороший «чит», на мой взгляд, может изменить права доступа к файлам ... – Parto 11 August 2015 в 13:50
  • 2
    Это может быть лучше удалено. Это может привести к проблемам: разрешения могут измениться. Если это делается в файле журнала, это может привести к неожиданному поведению службы, ожидающей, что журнал будет там и доступен для записи. – Rinzwind 15 November 2015 в 09:49
  • 3
    Хотя этот ответ не самый лучший способ в качестве объекта интереса: Чтобы исправить проблемы с владельцем / разрешением, сначала проверьте права собственности и разрешения, затем добавьте это (при необходимости скорректируйте): & amp; & amp; & amp; Пользователь sudo chown: группа hello.txt & amp; & amp; & amp; sudo chmod 644 hello.txt – Chris 15 January 2017 в 09:20
vi filename -c ':1,$d' -c ':wq'

работал лучше для меня из-за конкретного разрешения, которое у него было

0
ответ дан 24 May 2018 в 14:10
  • 1
    Вы можете улучшить этот ответ, разработав свою проблему. Также вы могли бы объяснить, что такое программа vi, и что делают различные параметры и аргументы. – WinEunuuchs2Unix 21 March 2018 в 03:59

Не самый короткий ответ, но ...

Этот ответ основан на другом от Super User. Хотя это не самая короткая команда bash, truncate является наиболее читаемым для средних новичков:

$ echo Hello > Hello.txt
$ echo World! >> Hello.txt
$ cat Hello.txt
Hello
World!
$ truncate -s 0 Hello.txt
$ ll Hello.txt
-rw-rw-r-- 1 rick rick 0 Mar 20 17:32 Hello.txt

Параметры, используемые с командой truncate здесь:

"-s" установить размер «0» будет равен нулю

Очистить все, кроме первых 10 000 байт

Преимущество truncate заключается в том, что вы можете указать, сколько нужно сохранить, а не только ноль: [!d8 ]

$ truncate -s 10000 Hello.txt

... будет усекать все после первых 10 000 байт. Это может быть полезно, если программа сходит с ума и сбрасывает много мегабайт данных в небольшой файл журнала:

"- s" установить размер Открыть файл с помощью текстового редактора и нажмите End Размер «0» будет равен нулю
0
ответ дан 24 May 2018 в 14:10

Другие вопросы по тегам:

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