我有一組json文件,我想對它們執行一些操作(提取標籤)。命令是這樣的:找到並處理到管道時打印文件名
find ./fixtures/*.json | xargs cat | jq .[0].terms.customer[0].slug
.[0].terms.customer[0].slug
是我的查詢,這裏不重要。上面的命令工作正常。輸出是這樣的:
"default"
"default"
"default"
"default"
"foo"
"foo"
"bar"
但是我如何更改上面的shell命令顯示處理文件的文件名?我想看到這樣的輸出:
1.json: "default"
2.json: "default"
3.json: "default"
4.json: "default"
5.json: "foo"
6.json: "foo"
7.json: "bar"
試着回聲,但似乎像輸出重定向到管道。我應該回應stderr或更好的方法可以在這裏使用?
當我使用tee
命令find ./fixtures/*.json | tee /dev/tty | xargs cat | jq .[0].terms.customer[0].slug
它表明我:
1.json
2.json
3.json
4.json
5.json
6.json
"default"
"default"
"default"
"default"
"foo"
"foo"
"bar"
這不是容易閱讀。
很好的回答。請在'%'之前添加關於爲什麼需要'-'的解釋。 – codeforester
感謝@codeforester,回答編輯。 – anubhava