我正在玩《最终幻想7》,我现在在新兵校舍的图书室里,需要写下每本书的第N个字母(减去空格),其中N是书名前面的数字,并打印出所有不属于当前房间的书籍的标题和其名称中的第N个字母。共有四本这样的书。
我需要一个sed脚本或其他命令行来打印书名并获取其名称中的第N个字母。
我需要一个sed脚本或其他命令行来打印书名并获取其名称中的第N个字母。
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
"The Ancients in History": 13:1
? - Alexej Magura