次のコマンドを使用して、ファイルを1行ずつ送信しようとしています。
nc host port < textfile
cat textfile | nc host port
tailとheadを試してみましたが、結果は同じで、ファイル全体が一意の行として送信されます。サーバーは、データ ログ情報を受信するために特定のデーモンをリッスンしています。
ファイル全体を一度に送信するのではなく、1行ずつ送受信したい。
どうやってやるの?
netcat を使用する必要がありますか?
cat textfile > /dev/tcp/HOST/PORT
少なくともbashを使用すると、目的を果たすこともできます。
すべてのファイルを一度に送信するのではなく、1行ずつ送信および受信したいです。
試す
while read x; do echo "$x" | nc host port; done < textfile
stdbuf -oL を使用して、標準出力ストリームのバッファリングを調整します。MODE が「L」の場合、対応するストリームはライン バッファリングされます。
stdbuf -oL cat textfile | nc host port
ここで推測するだけですが、おそらくCR-NLの行末:
sed $'s/$/\r/' textfile | nc host port