【发布时间】:2021-04-13 14:24:39
【问题描述】:
我是 shell 脚本的新手,我想将字符串 /dev/sda 的最后一个字符更新为下一个字母并遍历提供的计数,然后使用 shell 脚本将其写入文件。有人可以帮我吗?
例如:如果 Count 是 10,那么我想循环 10 次来更新字符串并在下一行的文件中写入更新后的字符串。
示例文件:myfile.txt
/dev/sda
/dev/sdb
/dev/sdc
/dev/sdd .... and so on
【问题讨论】:
-
你会如何处理 z?还是数字?
-
可能与正则表达式有关? @大力水手
-
与其编辑字符串,不如考虑从常量前缀
/dev/sd创建字符串并添加适当的字母。乍一看,seq命令可能会完成这项工作,但它只使用浮点格式打印并且只打印数字(我有一个变体range命令允许我使用range -f '%c' 97 103生成字母a到g— 但range只处理整数,不处理浮点数)。列出for letter in a b c … z; do …; done可能是最简单的,当达到计数限制时打破循环。 -
This 可能会有所帮助(尽管它远非整个解决方案)。
-
echo /dev/sd{a..j}?