如何使用 vi 刪除檔案中的所有行?
目前,我使用類似的方法來刪除文件中的所有行:
echo > test.txt
如何使用刪除所有行vi
?
筆記:
使用dd
不是一個好的選擇。可以有很多行。
答案1
在vi
做
:1,$d
刪除所有行。
引入:
一個命令(並將遊標移到底部)。
指示1,$
以下命令 ( d
) 應該在哪些行上執行。在本例中,範圍是從第一行到最後一行(以 表示$
,因此您不需要知道文件中的行數)。
最後一個d
代表刪除指定的行。
有一個更短的形式(:%d
),但我發現自己從未使用過它。可以:1,$d
更容易地“適應”,例如:4,$-2d
僅保留前 3 行和最後 2 行,刪除其餘的。
答案2
在 vi 我使用
:%d
在哪裡
:
告訴 vi 進入指令模式%
表示所有行d
: 刪除
在命令列上,
> test.txt
也會做。
dd 有什麼問題嗎?
dd if=/dev/null of=test.txt
在哪裡
/dev/null
是一個特殊的0位元組文件if
是輸入檔of
是輸出檔案
答案3
我建議您這樣做(應該可以在任何與 POSIX 相容的 shell 中工作):
> test.txt
如果你真的想用 vi 來做,你可以這樣做:
- 1G(轉到第一行)
- dG(刪除到最後一行)
答案4
如果您的遊標位於第一行(如果不是,請鍵入:gg
或1G
),那麼您可以直接使用dG
。它將刪除從當前行到文件末尾的所有行。因此,為了確保從文件中刪除所有行,您可以將兩者混合在一起,這將是:(ggdG
在命令模式下)。
或%d
在 Ex 模式下,命令列範例:vim +%d foo.bar
.