5

私はファイナル ファンタジー 7 をプレイしている最中です。あなたが神羅本社の図書館にいて、N 番目の文字を書き留めなければならない場所にいます。N 番目は数字です。本のタイトルの前 - 現在の部屋に属していないように見えるすべての本 (そのうち 4 冊あります)。

Nth本のタイトルを印刷し、その名前の文字を取得するには、sed スクリプトまたはその他のコマンドラインが必要です。

4

2 に答える 2

7

その必要はありませんsedbash文字列置換を使用できます。

$ 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
于 2013-07-26T05:13:06.590 に答える
1

私はそれを行う方法を考え出しました:

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
于 2013-07-26T04:47:03.633 に答える