用Sed获取第N个角色

时间:2013-07-26 04:47:04

标签: string sed

我正处于玩最终幻想7的中间,我正处于你在Shinra HQ图书馆的那一部分,你必须写下N字母 - 减去空格,Nth是书的标题前面的数字 - 对于每本似乎不属于当前房间的书,其中有4本。

我需要一个sed脚本或其他命令行来打印书名,并在其名称中输入Nth个字母。

2 个答案:

答案 0 :(得分:6)

您不需要sed。您可以使用bash字符串替换:

$ book="The Ancients in History"
$ book="${book// /}"   # Do global substition to remove spaces
$ echo "${book:13:1}"  # Start at position 13 indexed at 0 and print 1 character
H

答案 1 :(得分:1)

我想出了怎么做:

echo "The Ancients in History" | sed -r 's/\s//g ; s/^(.{13})(.).*$/\2/'

=> H

注意
Sed开始计数为0而不是1,所以如果你想要第14个字母,请询问第13个字母。

以下是shell脚本:

#!/bin/sh

if [[ -n "$1" ]]; then # string 

    if [[ -n "$2" ]]; then # Nth 

        echo "Getting character" $[$2 - 1]

        export Nth=$[$2 - 1]

        echo "$1" | sed -r "s/\s//g ; s/^(.{$Nth})(.).*$/\2/";
    fi
fi