暗号化する文字列を含むテキスト ファイルがあります。これらの文字列はタグで示されます。
例:
This is an <tag> example </tag>.
UNIX で (sed、bash などの一般的なツールを使用して) すべての出現箇所を検索し、同時にそれを暗号化された値に置き換える最良の方法は何ですか (これはタグ内の文字列の機能です)。
結果:
This is an <tag> <encrypted value here> </tag>.
前もって感謝します!
4 つの不明確な条件を想定します。
その場合、bash、sed、awk はすべて面倒です。Perl または Python を使用する方がよいでしょう。以下はアルゴリズムです。
わかりました、数日前に解決策を見つけることができました。bash と正規表現を使用しました。
これが私がやった方法です:
#!/bin/bash
REGEX='^(.*<tag>)(.*)(<\tag>.*)$'
function process()
{
RESULT= #do processing of $1 here
}
while read line ; do
while [[ $line =~ "$REGEX" ]] ; do
process "${BASH_REMATCH[2]}"
line="${BASH_REMATCH[1]}$RESULT${BASH_REMATCH[3]}"
done
echo "$line" > "$OUTPUT_FILE"
done < "$FILE"