1行に各数字が多い数字を含むファイルがあります。私の目標は、欠けている数字を見つけることです。すべての数値のシーケンスを生成しようとしています。seq
start=$(head -1 numbers.txt)
finish=$(tail -1 numbers.txt)
seq $start $finish > all_numbers.txt
次のエラーメッセージが表示されます。
seq: invalid floating point argument: 4106
Try 'seq --help' for more information.
4106は明らかに浮動小数点数ではないので混乱しています。
その後、diffを使用して欠落している数字を見つける予定です。 seqがなぜこのように動作するのか教えてくれる人はいますか?
ベストアンサー1
4106の後ろに隠された文字があるかもしれません。ファイルがMicrosoftの世界では、キャリッジリターンである可能性が高く、最初に削除する必要があります(またはで完全に完了する必要がありますawk
)。
$ seq 1 $'2\r'
seq: invalid floating point argument: 2
Try `seq --help' for more information.
$ echo seq 1 $'2\r'
seq 1 2
そこにいるが、見ることはできない。端末に出力するとき(通常)カーソルを行の先頭に移動します。
ksh93、zsh、またはbashを使用して以下を試してください。
printf '<%q>\n' "$start"
何が含まれているかを確認してください。