【问题标题】:Update last character of string using shell script使用 shell 脚本更新字符串的最后一个字符
【发布时间】: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 生成字母ag — 但 range 只处理整数,不处理浮点数)。列出for letter in a b c … z; do …; done 可能是最简单的,当达到计数限制时打破循环。
  • This 可能会有所帮助(尽管它远非整个解决方案)。
  • echo /dev/sd{a..j}?

标签: bash shell sh


【解决方案1】:

产生所有的可能性,只选择你想要的。

printf '%s\n' /dev/sd{a..z} | head -n"$count"

【讨论】:

    猜你喜欢
    • 2012-12-29
    • 1970-01-01
    • 1970-01-01
    • 2014-06-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-08
    相关资源
    最近更新 更多