GNU/Linux >> Linux の 問題 >  >> Linux

LfのないXmlは、シェルでSedコマンドを使用してきれいにしたいですか?

gitリポジトリにプロジェクトの構造があり、git bashでシェルコマンドを実行して、すべての>を置き換えたいと考えています。 >\nを使用 (LF)。
次のコマンドを試しました:

find . -name '*.xml' -exec sh -c 'sed 's/>/>\n/g "$0"' '{}' ';'

上記のセットを置き換えることを意味します(> >\nを使用 )私のプロジェクトで見つかったすべてのxmlファイル。

カーソル「>」でエディターに移動したので、何が間違っているのかわかりません…
(エディターできれいにするだけです。たとえば、Note ++はXMLToolsのプラグインで簡単ですが、ファイルを次のように変更したいです。各XMLタグの後にLFが含まれています)

ファイルに対してのみコマンドを作成すると、うまく機能します:

$ sed 's/>/>\n/g' MyFile.xml

承認された回答:

sedを使用することはお勧めできません このために、あなたがしているように見えるのはフォーマットすることです XMLファイル。

これは、XMLパーサーにとって簡単なタスクです。例:

xmllint --format file.xml

このユーティリティは、多くの場合、デフォルトでGNU Linuxにインストールされるか、パッケージlibxml2とともにインストールされます。

または

xmlstarlet format file.xml

Linux
  1. コマンドを使用してPPKをPEMファイルに変換する方法

  2. Sedコマンドで一度に複数のパターンを使用する

  3. Unixでシェルコマンドを編集するためにViキーを使用しますか?

  1. Sedコマンドを使用した後にファイルを保存しますか?

  2. コマンドシェルでファイルをX回複製しますか?

  3. 10 Sed (ストリーム エディター) コマンドの例

  1. テキスト ファイルから ^M 文字を削除するシェル コマンド

  2. rm を使わずにファイルを削除するには?

  3. ファイルの変更を監視するシェル コマンド