使用模式将数字增加1

时间:2018-03-06 12:46:03

标签: linux unix

我想知道可以在文件中找到的字符串或数字增加1的UNIX命令,例如:

String0001
2222220001
233333-7777-0001-33335

说,在调用命令后,搜索0001并将其替换为文件中的0002。并且,每次调用时,增量应为0001,0002,...,0010,... 0011等。

1 个答案:

答案 0 :(得分:0)

要重复增加数量,您必须在某处协议,例如在文件本身,或在第二个文件中,在数据库或任何地方。我们更改文件本身,称为inc.sh:

#!/bin/bash
no=1

file="$1"
inc=$((no+1))
i=$(printf "%04d" $no)
o=$(printf "%04d" $inc)
sed -i "s/$i/$o/g" "$file"
sed -i "2s/$no/$inc/" ./inc.sh

您使用./inc.sh FILE调用它,最后它会自行修改。如果重命名它,则必须更改第二个sed命令,原则上应该更喜欢绝对文件名。

测试是否存在作为参数给出的目标文件等等。

计数器必须保持在第2行,或者最后一个sed调用必须适应新位置。

  • 一开始这个数字是1.
  • 脚本的参数是文件名
  • 增量大于无
  • 我for in将是4个地方宽,填充零
  • o for the same
  • sed命令将文件中的所有0001更改为0002
  • sed命令,将第2行从no更改为inc。