String 使用Sed获取第n个字符 我正在玩《最终幻想7》,我在SHIRA-HQ的图书馆里,你必须写下第n个字母——减去空间,其中NTH是书名前面的数字——对于每一本不属于当前房间的书,其中有4本。p>
我需要一个sed脚本或其他命令行来打印书的标题,并在书名中获得第n个字母。我想出了方法:String 使用Sed获取第n个字符 我正在玩《最终幻想7》,我在SHIRA-HQ的图书馆里,你必须写下第n个字母——减去空间,其中NTH是书名前面的数字——对于每一本不属于当前房间的书,其中有4本。p>,string,sed,String,Sed,我需要一个sed脚本或其他命令行来打印书的标题,并在书名中获得第n个字母。我想出了方法: 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" ]];
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
你不需要
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
也许你的意思是sed删除了前13个字母,下一个字母是第14个。@potong:是的,我宁愿使用打印函数thingy,但我想不出如何让它实现我想要的功能……有没有办法不将字符串存储到变量中,比如
“历史上的古人”:13:1
?