我正在玩《最终幻想 7》,我在你在神罗总部图书馆的那部分,你必须写下第 N 个字母——减去空格,其中 Nth 是数字书名的前面——每本似乎不属于当前房间的书,其中有 4 本书。
我需要一个 sed 脚本或其他命令行来打印书名并获取书名中的Nth
字母。
你不需要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
我想出了如何做到这一点:
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