私はファイナル ファンタジー 7 をプレイしている最中です。あなたが神羅本社の図書館にいて、N 番目の文字を書き留めなければならない場所にいます。N 番目は数字です。本のタイトルの前 - 現在の部屋に属していないように見えるすべての本 (そのうち 4 冊あります)。
Nth
本のタイトルを印刷し、その名前の文字を取得するには、sed スクリプトまたはその他のコマンドラインが必要です。
その必要はありません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 は 1 ではなく 0 からカウントを開始するため、14 番目の文字が必要な場合は、13 番目の文字を求めます。
シェルスクリプトでは次のようになります。
#!/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