2

一部の行が次の形式のテキスト ファイルがあるとします。

%attr(750,user1,group1)  "/mydrive/mypath1/mypath2\winpath1\winpath2\file.xml"

私が達成したいのは:

  • %attr で始まる行だけに触れる
  • そのような行のそれぞれで、「.*」(引用符を含む)の最後の機会を見つけます
  • その最後の機会の中ですべて\を置き換えます/

sedユーティリティの適切な構文は何ですか?

4

2 に答える 2

1

awk は簡単に仕事をすることができます:

awk -F '"' '/^%attr/ {gsub(/\\/, "/", $(NF-1))} 1' OFS='"' file

元のファイルを変更するには:

awk -F '"' '/^%attr/ {gsub(/\\/, "/", $(NF-1))} 1' OFS='"' file > _tmp && mv _tmp file
于 2013-10-11T08:50:14.530 に答える