オンラインで特定の記号の後の単語を探す

オンラインで特定の記号の後の単語を探す

変数=テキストを含むファイルを読み取るには、bashスクリプトを作成する必要があります。私にとって必要なのは、ファイルを確認し、変数名を無視してテキスト内の=記号の後の単語を検索するスクリプトです。

はい

thread.give_respect.title = Give respect
thread.receive_respect.title = Gain respect
thread.profile_respect.title = Show my Respect

最初の部分は変更可能なので、単語は必要ありません。尊敬変更されました。 =次に1つだけ出てきますね。そして、可能であれば、変更したい単語に大文字があることを確認して、それに合わせて変更できるようにしたいと思います。

編集する:

Esteban スクリプトを試しましたが、各行の先頭に ${var のファイルが作成されました。

何を交換したいか尋ねる他の人に:

私たちは巨大なファイルを持っています文字列変数=対応するテキスト。たとえば、

admin.help_text = help
admin.Help_text = Help
home.faq_title = FAQ
...

これらのファイルには、15,000以上の変数とその値が含まれています。時々私たちは言葉到着その他たとえば、

**help** to **guidance** 
**Help** to **Guidance**
**helper** to **guide**
**Helper** to **Guide**

私たちに必要なもの:

  1. ファイルを確認するスクリプト:ワード1ワード2ワード3そしてワード4

  2. その単語が存在する場合ワイヤーわかったワイヤー別のファイルとして。

  3. すべての作業が完了したら、新しいファイルでword1、word2などを見つけて置き換えます。

たとえば、すべての変数とその内容を含むファイル(file1.txt)があります。

admin.help_text = help
admin.Help_text = Help
home.faq_title = FAQ
home.something.help = If you need help please send us email on...

スクリプトが起動したら、次のことを確認してください。

word1 = help
word2 = Help

見つかった行をfile2.txtに保存します。

admin.help_text = help
admin.Help_text = Help
home.something.help = If you need help please send us email on...

その後、スクリプトはfile2.txtを確認して変更します。助ける到着ガイドそして 助ける到着ガイド

admin.help_text = guidance
admin.Help_text = Guidance
home.something.help = If you need guidance please send us email on...

答え1

質問が編集されたので:

@Apocパターンの数が制限されている場合は、次の手順を使用して手順1と2を実行できます。

awk -F'=' '$2 ~ /word1|word2|word3|word4/' file1.txt > file2.txt

ステップ3では、必要な方法と実行する方法によって異なります。


私は次のことをします:

  • 各行を繰り返します。
  • 変数セクションの検索
  • 必要に応じて変更してください。
  • 変更された行を一時出力ファイルとして印刷する
  • ファイルを一時ファイルに置き換える

シェルスクリプトから:


#!/bin/sh

# Loop through lines
cat file.txt | while read line; do
  # Store variable part of the line
  var=`echo $line | sed -r 's/^[^=][ ]?(.*)$/\1/'`

  # Make the modification you want on var
  # ...

  # Print in temporary file the modified line
  echo $line | sed -r 's/^([^=])/\1 ${var}/' >> temporary_file.txt
done

# Replace file by temporary one
mv temporary_file.txt file.txt

答え2

~からエステバンについての意見回答、最終的に使用された回答は次のとおりです。

awk -F'=' '$2 ~ /word1|word2|word3|word4/' file1.txt > file2.txt

関連情報