如何清除不打开文本文件中存在的文本?
我的意思是,例如,我有一个hello.txt
包含一些文本数据的文件,并且如何在不打开该文件的情况下清除该文件中的全部文本?
我的意思是不使用任何编辑器,例如nano,Gedit等。
如何清除不打开文本文件中存在的文本?
我的意思是,例如,我有一个hello.txt
包含一些文本数据的文件,并且如何在不打开该文件的情况下清除该文件中的全部文本?
我的意思是不使用任何编辑器,例如nano,Gedit等。
Answers:
只需使用CTRL+ ALT+ 打开终端T并输入
> hello.txt
就是这样,您甚至无需打开该文件即可清除该文件中的数据。
例:
stdout
覆盖现有文件(如果有)。在这种情况下,什么也没有stdout
。因此,该文件将被void覆盖,如果有的话,基本上擦除了原始数据。
我还将使用重定向,例如rajagenupula的答案。但是有更多的灵活性。打开一个终端并输入
cat > hello.txt
然后按Ctrl+ C。它将清除先前的文件。如果您想要达到这个目的就可以了。
如果您希望清除文件后可以做更多的事情。这样,您不仅可以在不打开文件的情况下擦除文件,还可以在文件中以正确的格式写几行。假设您要在擦除文件后写“ Ubuntu是最好的操作系统”,只需
cat > hello.txt
Ubuntu is the
best OS
然后按Ctrl+ C。现在,先前的文件已被清除。同时,我把它们放在两行中。
参见示例:
>
代表重定向。cat > file
将写入stdout
文件,覆盖任何现有文件。
如果使用名称hello.txt创建了文件,并提供了一些文本,则终端ctrl+ alt+中的以下命令t将删除hello.txt文件中的所有文本,
echo "" > hello.txt
另一种方法- 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:$
该答案基于超级用户的另一个答案。尽管不是最短的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
此处与命令一起使用的参数:
的优点truncate
是您可以指定保留多少,而不仅仅是零:
$ truncate -s 10000 Hello.txt
...将截断前10,000个字节后的所有内容。如果程序发疯并将大量兆字节的数据转储到一个小的日志文件中,这可能会很有用:
truncate
命令以将合理的较大正常大小设置为10K因此,我看到很多重定向被用来回答这个问题;)
组合的方法略有不同:rm&touch
rm hello.txt && touch hello.txt
(是的...又是另一种作弊!)
因此,使用此命令组合后,文件hello.txt并没有打开,最后您仍然将文件hello.txt替换为已清除的内容。就像您想要的一样!
vi filename -c ':1,$d' -c ':wq'
因为获得了我的特别许可,所以对我来说效果最好
vi
以及各种参数和参数的作用。