ログファイルの中に不要なものがたくさん入っているのでその内容をクリアしたい
内容を画面に印刷する方法を知っています
cat file.log
ファイルを編集する方法を知っています
nano file.log
でも、一行ずつ削除するのは嫌です。そのためにファイルを破棄せずに、一回のコマンドでできる方法はないでしょうか?
324 Andrew 2010-01-01
バッシュでは
> filename
を実行します。これで空のファイル名が残ることになります
PS: sudo
コールが必要な場合は、ここで回答されたとしてtruncate
を使用することを検討してください
543 geek 2010-01-01
ユーザーコマンド : truncate を使用することができます
truncate -s 0 test.txt
(サイズを指定するには”-s 0 “を使用)
149 nono 2013-08-20
こんなこともできるんですね
echo -n "" > file.log
>
を使って、echo -n
からの(ヌル)入力をファイルに書き込む
>>
を使うと、ヌル入力をファイルに追加することになります(効果的には何もしませんが、touch
をするだけです)
37 Thechickenmoo 2010-01-01
: > file.log
Bash の > filename
と同じだが、より多くのシェルで動作する (credit)(出力を持たない) true
ビルトインからの出力を filename
にリダイレクトする
32 Stuart P. Bentley 2014-07-25
ZSH
>! filename
ZSH は、io リダイレクト演算子 >
を使ってファイルを clobber することからユーザを保護します。>!
を使うと、既存のファイルを強制的に切り捨てることができます
ファイルクローバーから保護されていない Bash のリダイレクト動作を ZSH に使わせたい場合は、シェルに clobber
オプションを設定する必要があります
より多くの情報。http://zsh.sourceforge.net/Doc/Release/Redirection.html
12 Brian Wigginton 2012-12-06
コマンドラインでvimエディタの中からやりたい場合は、次のようにしてみてください
vim file.txt
Press Esc.
:1,$d
Press Enter.
すべての行が削除されていることがわかります
10 soum 2012-09-12
$ rm file.log; touch file.log
or
$ cat > file.log
続いてcontrol-d
となります
or…or…or…
あーあ。こちらはシングルコマンド版
$ dd if=/dev/null of=file.log
5 dmckee — ex-moderator kitten 2010-01-01
以下のコマンドも動作するはずです
cat /dev/null > file.log
5 paarth batra 2016-05-10
ファイルにアクセスするためにスーパーユーザ権限をsudoにする必要がある場合、受け入れられた答えは動作しません。これを使用すると動作します
truncate -s0 file
または明示的にsudoを使用します
sudo truncate -s0 file
詳細はこちら http://www.commandlinefu.com/commands/view/12/empty-a-file
2 timeSmith 2015-01-30
Few alternatives:
ex +%d -scwq file.log
cp /dev/null file.log
vi +%d -escwq file.log
install -m600 /dev/null file.log
1 kenorb 2015-10-25
ファイル名にスペースがある場合は、使用してください
for file in /path/to/file/*; do > "$file"; done
(評価が50もないので前の回答へのコメントには入れられませんでした。制限が逆生産的なこともあります)
1 d491049 2018-03-15
sed
を使用してもよい
sed -i d filename
1 apena 2020-05-26
クリアする方法は以下のように複数あります
echo "" > filename
cat /dev/null > filename
以下の例は、主にシェルスクリプトで使用されています
just# > filename
: > filename
1 sudhams reddy 2020-05-26
一度に一行ずつ?
vi(m) を試してみてください。この場合、行に移動し、d キーを押して (削除)、もう一度 d キーを押して (行に) 行に移動します
0 Phoshi 2010-01-01
私の権限では、これだけが機能していました
touch temp.txt
sudo mv temp.txt original-file.txt
0 Morgan 2014-03-04
また、複数のファイルがある場合は
for file in /path/to/file/*; do > $file; done
同じディレクトリにあるログファイルの場合に便利です
0 DomainsFeatured 2016-06-22
windows環境で
type nul >filename
0 Wasif Hasan 2020-09-17