0

ファイル内の特定のテキストを検索し、最後に出現したインデックスを見つけようとしています。タスクは、検索されたインデックスを同じファイル内の別の列に追加することです。私はタスクを達成できますが、より効率的なソリューションを探しています。

詳細な説明は次のとおりです。

names_file.txt

タルン・トレハン
ヴィクラム・バトラ
allzhere ブログ
すべての場所の Android アプリ
Facebookのallzhere
連絡先アップデータ ユーティリティ
助けて

次のコマンドを実行して、結果をステージング ファイル (names_searched.txt) に取得します。

grep "n" names_file.txt > names_searched.txt

結果は次のとおりです。

タルン・トレハン
すべての場所の Android アプリ
Facebookのallzhere
連絡先アップデータ ユーティリティ

ここで、次の awk コマンドを実行して、「n」の最後のインデックスを抽出します。

猫の名前_検索済み.txt | awk -F"n" '{印刷長($0) - 長さ($NF)}' > namex_srch_idx.txt

結果は次のとおりです。

12
11
11
3

ここで、ファイルを貼り付けて、結果のファイルを準備します。

貼り付け names_searched.txt namex_srch_idx.txt > names_result.txt

望ましい結果は次のとおりです。

タルン・トレハン 12
allzhere Android アプリ 11
Facebookのallzhere 11
連絡先アップデータ ユーティリティ 3

ステージング ファイルを作成しなくても同じ結果が得られる回避策はありますか?

4

1 に答える 1