使用linux命令在txt文件中设置范围

使用linux命令在txt文件中设置范围,linux,bash,shell,scripting,centos,Linux,Bash,Shell,Scripting,Centos,我有一个包含数字范围的文件 例: 我想把它们翻译成1234500,然后自动写出1234599之前的每个数字 有没有一种方法可以用shell实现这一点?Perl来拯救它 perl -lne 'if (m{(.*) (.*)/(.*)}) { print $1, $_ for $2 .. $3 }' -n逐行读取输入 -l为每个打印添加一个换行符 m{}是匹配运算符 匹配除换行符以外的任何内容 *表示“零次或多次” 括号用于创建“捕获组” 所以,我们匹配任何东西,空间,任何东西,斜线,任何东西;

我有一个包含数字范围的文件

例:

我想把它们翻译成1234500,然后自动写出1234599之前的每个数字

有没有一种方法可以用shell实现这一点?

Perl来拯救它

perl -lne 'if (m{(.*) (.*)/(.*)}) { print $1, $_ for $2 .. $3 }'
  • -n
    逐行读取输入
  • -l
    为每个
    打印添加一个换行符
  • m{}
    是匹配运算符
  • 匹配除换行符以外的任何内容
  • *
    表示“零次或多次”
  • 括号用于创建“捕获组”
  • 所以,我们匹配任何东西,空间,任何东西,斜线,任何东西;所有被记住的东西分别是1美元、2美元和3美元
  • 是范围运算符

告诉我们您从哪里得到的以及您遇到了什么问题。感谢您的回复:)您能解释一下这个命令是如何工作的吗?还有。*的作用是什么?非常感谢你的帮助,现在已经很清楚了:)既然我有不同的范围,比如12345 00/99和1234 000/999,有没有办法让shell自动识别范围?@luuke:你是什么意思?你得到了错误的输出吗?还是你的输入不同?
perl -lne 'if (m{(.*) (.*)/(.*)}) { print $1, $_ for $2 .. $3 }'