gpt4 book ai didi

linux - 使用模式将带有数字的字符串加 1

转载 作者:太空宇宙 更新时间:2023-11-04 05:48:38 24 4
gpt4 key购买 nike

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

String0001
2222220001
233333-7777-0001-33335

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

最佳答案

要重复增加数量,您必须在某个地方对其进行协议(protocol),例如在文件本身、第二个文件、数据库或任何地方。我们更改文件本身,该文件名为 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。
  • 脚本的参数是文件名
  • 增量比没有大一
  • i for in 应为 4 位宽,用零填充
  • o 相同
  • sed 命令将文件中的所有 0001 更改为 0002
  • sed 命令,将第 2 行从 no 更改为 inc。

关于linux - 使用模式将带有数字的字符串加 1,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49131209/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com