seq - 无效浮点参数错误

seq - 无效浮点参数错误

我有一个包含许多数字的文件,每个数字占一行。我的目标是找到丢失的数字。我正在尝试生成所有数字的序列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"

看看它包含什么。

相关内容