jsonファイルをかなりの印刷形式に変換するスクリプト(convert.sh)を作成しました。たとえば、ディレクトリ内のファイルを再帰的に処理する
convert.sh source.json
これは、source.jsonファイルの代わりになります。かなりの印刷形式で上書きされます。 convert.shの
コンテンツは
#!/bin/bash
INFILE=$1
python -m json.tool $INFILE > $INFILE.tmp
mv $INFILE.tmp $INFILE
これは、1つのファイルのために非常に適しています。しかし、私はディレクトリの下のすべてのファイルを処理したいと思います。例えば
dir1\file1.json
dir1\file2.json
dir1\subdir\abc.json
dir1\subdir2\def.json
...
これを行う1行のコマンドはありますか?試しました
find dir1 | grep .json | xargs convert.sh
成功しませんでした。親切にお手伝いください。どうもありがとう!いくつかのパターンに一致するファイルの(1)検索に
'最初の後にすべて削除|'を。 'find dir1'はあなたの完全なファイルリストを出力しますか?いくつかのバージョンはそれをしません。 'fin dir1 -print'(または同様のもの)が必要かもしれません。がんばろう。 – shellter
findの出力が正しいです。問題はそれに関連していないようだ。 –
作成したtmpファイルを見るために、スクリプト "mv $ INFILE.tmp $ INFILE"の最後の行をコメントアウトしようとしました。 xargsコマンド全体を実行した後、作成されたtmpファイルは1つしか見つかりませんでした。 findリストの1つのファイル(find出力の最初の行)のみを処理できるようです。 –