8

次のコマンドを使用して、ファイルを1行ずつ送信しようとしています。

nc host port < textfile
cat textfile | nc host port

tailheadを試してみましたが、結果は同じで、ファイル全体が一意の行として送信されます。サーバーは、データ ログ情報を受信するために特定のデーモンをリッスンしています。

ファイル全体を一度に送信するのではなく、1行ずつ送受信したい。

どうやってやるの?

4

4 に答える 4

13

netcat を使用する必要がありますか?

cat textfile > /dev/tcp/HOST/PORT

少なくともbashを使用すると、目的を果たすこともできます。


すべてのファイルを一度に送信するのではなく、1行ずつ送信および受信したいです。

試す

while read x; do echo "$x" | nc host port; done < textfile
于 2012-12-20T11:31:27.533 に答える
4

stdbuf -oL を使用して、標準出力ストリームのバッファリングを調整します。MODE が「L」の場合、対応するストリームはライン バッファリングされます。

stdbuf -oL cat textfile | nc host port
于 2016-03-08T02:06:58.597 に答える
2

ここで推測するだけですが、おそらくCR-NLの行末:

sed $'s/$/\r/' textfile | nc host port
于 2012-12-20T15:05:19.167 に答える