0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

xargsを用いた連続処理とbashコマンド

Posted at

概要

findなどのコマンドを利用してファイルを検索して、xargsに渡して処理をさせたい
しかし、対象ファイルが複数になると処理が連続して行われるために期待する動作にならない場合がある

以下のコマンドではテキストファイルを検索して、ファイルの中身をxxdコマンドの第一引数として渡している
出力結果として期待するのはファイル毎の処理結果が改行されて出力されることだが、
xxdによって改行コードが取り除かれるため、全ての処理結果が一行につながって出力されてしまう。
※xxdコマンドは16進数dumpなどが可能なコマンド

find *.txt | xargs -L 1 -I{} xxd -p -r {}

このような場合、bashコマンドを使用する
以下のようにbashコマンド使うと、その中でbashを立ち上げてコマンドを実行することができるため、
改行コードを挟むなどの操作が可能

find *.txt | xargs -L 1 -I{} bash -c 'xxd -p -r {}; printf "\n"'
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?