我想知道可以在文件中找到的字符串或数字增加1的UNIX命令,例如:
String0001
2222220001
233333-7777-0001-33335
说,在调用命令后,搜索0001并将其替换为文件中的0002。并且,每次调用时,增量应为0001,0002,...,0010,... 0011等。
答案 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调用必须适应新位置。