【问题标题】:Unix Character counting - Looking for a ksh solutionUnix 字符计数 - 寻找 ksh 解决方案
【发布时间】:2015-10-25 19:06:42
【问题描述】:

我有一个现有的 ksh 脚本,它执行许多不同的任务。

我被要求为脚本添加更多智能。

所以,我一直在努力弄清楚如何添加这个:

在文件的第一行,该行某处有一个波浪号 (~) 字符。它并不总是始终在同一个位置。但是,在第一个波浪号之前总是三个、3 个字符是一个字母名称。我需要能够:

  1. 查看文件(很简单)
  2. 数到第一个波浪号
  3. 回看三个字符,找到我需要的实际指示符。

我一直在查看命令等,但到目前为止我还没有找到任何帮助。

任何想法将不胜感激。

【问题讨论】:

  • 更新,如果有办法计算给定字符,现在我使用 103,我认为可以解决这个问题。

标签: unix scripting ksh


【解决方案1】:

首先从第一个波浪号和前面的两个字符中删除所有字符。接下来(ksh方案)使用排版获取最后一个字符。

a="some string with 12345a~ and another ~ in it"
b="${a%%??~*}"
echo "Substring b: $b."
typeset -R1 desig 
desig=$b
echo "Found: ${desig}"

当排版不起作用(bash)时,也可以使用

echo -n "$b"| tail -c1

【讨论】:

    【解决方案2】:

    啊,没关系。

    我想我已经找到了一种使用 cut -c 来转到文件中给定字符的方法。

    那会让我很危险。然后,如果有必要,从那里开始......我会考虑其他人的情况。

    很抱歉打扰,但我会在这里留下答案,以防将来对其他人有所帮助。

    【讨论】:

    • 帮助别人,给别人提供帮助的机会,请展示你的解决方案。我认为您为解决波浪号检测做了一些事情,如substr=$(cut -c'~' -f1),您是如何找到从末尾数起的 3 个字符的?
    猜你喜欢
    • 2020-10-12
    • 1970-01-01
    • 2014-07-20
    • 2017-07-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-01-16
    • 1970-01-01
    相关资源
    最近更新 更多