-1

重複の可能性:
一部のテキストをそのまま残してsed文字を置換

sed(またはおそらくperl)を使用して一部の文字を置き換える方法ですが、不明な番号はそのまま残します。ファイルには、次のような複数の行があります。

<"START=xxx">
<"START=yyy">
<"START=zzz">

「xxx」、「yyy」、および「zzz」は、異なる未知の値 (数値) です。末尾の "> を削除して置き換え、先頭も置き換えたい (ただし、私にとってはそれほど難しくありません)。最終的にファイルは次のようになります。

<START>xxx</START>
<START>yyy</START>
<START>zzz</START>

前もって感謝します!

4

3 に答える 3

1

これはそれを行う必要があります:

sed 's;<"\([^=]\+\)=\([^"]\+\)">;<\1>\2</\1>;' file

xmlただし、形式が非常に厳密で、書式設定言語の厳密で明確に定義されたサブセットに焦点が当てられている場合を除き、行指向のツールを使用してコンテンツのような処理を行うのは正しい方法ではないことに注意してください。

于 2012-09-20T11:44:31.943 に答える
1

楽しみのために、Perl ソリューション:

perl -pe's#<"(.+?)=(\d+)">#<$1>$2</$1>#' <file >outfile

また

perl -pie's#<"(.+?)=(\d+)">#<$1>$2</$1>#' file

現場交換用

于 2012-09-20T11:55:02.293 に答える
0
awk -F"=" '{gsub(/\"|<|>/,"");print "<"$1">"$2"</"$1">"}' your_file

以下でテスト済み:

> cat temp
<"START=xxx">
<"START=yyy">
<"START=zzz">
> awk -F"=" '{gsub(/\"|<|>/,"");print "<"$1">"$2"</"$1">"}' temp
<START>xxx</START>
<START>yyy</START>
<START>zzz</START>
于 2012-09-20T11:51:55.343 に答える