スクリプトの生成と実行

スクリプトの生成と実行

与えられたアクション:headとtailを使用してファイルの2番目の部分(つまりデータ部分)を抽出するコマンドを作成します。

*見つかった内容:tail -n 52 (path) | head -n 51は、この部分を抽出するための正しいheadコマンドとtailコマンドを提供します。

extractdataという実行可能なスクリプトに変換します。次に、findとextractdataを使用して、月ディレクトリにあるすべての.csvファイルの2番目の部分を取得し、出力をpolls.csvというファイルに保存するコマンドを作成します。

*今まで、私は次のことをする方法を見つけました。 vim extractdata

データ抽出時:

#!/bin/sh
#----------------------------------------------------------------------------
#A script used to extract the second section of a file (i.e. the data section)
#----------------------------------------------------------------------------


echo "Hello $USER."


tail -n 52 $1 | head -n 51

次の作業とこのスクリプトの実行方法は混乱しています。実行可能にするためにchmod 755を使用して権限を変更しましたが、プロセスで次に何が起こるのかわかりません。

(編集する):私が作成したスクリプトを実行する方法を見つけ、次のコマンドを使用すると期待どおりに動作します。

./extractdata/filepath/file.csv

今月のディレクトリにあるすべての.csvファイルをインポートし、polls.csvというファイルに入れる方法のこの部分でブロックされました。

(編集する):extractdataスクリプトに> polls.csvを追加すると、予想通り、headコマンドとtailコマンドがpolls.csvに保存されます。これで、ファイルパスディレクトリ内のすべての.csvファイルに対してこのコマンドを実行する方法を理解できます。

(更新):すべての.csvファイルから抽出されたデータをpolls.csvファイルに追加する操作を処理するスクリプトにループを追加する方法はありますか?

ベストアンサー1

find . -iname '*.csv' | xargs -I {} tail -n 52 "{}" \| head -n 51 > polls.csv

ただし、headとtailの代わりにgrepを使用する必要があります。

おすすめ記事