ファイルに書き込む前にファイルの内容を消去するには?たとえば、
echo one > filename.tmp
# filename.tmp now contains "one"
echo two > filename.tmp
# filename.tmp should now contain "two", not "one" and "two"
私の目標は次のとおりです
リスナーの開始
$ nc -l 7007 > /var/tmp/test.log
データを送信
$ telnet localhost 7007 hi second_word
テストファイル
$ cat /var/tmp/test.log second_word
私は「hi」がログに表示されたくありません。私はそれを「second_word」に置き換えたいと思います。
ベストアンサー1
ncはそのオプションを提供していないので、新しいファイルを消去して書き込むには別のプログラムが必要です。
nc -l 7007 | while true; do
while read line; do
echo "$line" > /tmp/test
done
done
ファイルパスを許可する別のスクリプトで、パイプの後ろのすべての内容を保存できます。
最後の行を保存してください。
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
。