最初のファイルのヘッダーのみを保持しながら、同じ構造のファイルをリンクします。

最初のファイルのヘッダーのみを保持しながら、同じ構造のファイルをリンクします。

次のスクリプトを使用して名前が異なり、同じデータ構造を持つ28個のファイルをマージしたいと思います。

$ cp mohan.csv Consolidate.csv
$ for fname in line
    do 
      cat $fname | sed '1d' >> Consolidate.csv
    done < input.txt

そしてinput.txt以下を含んでいます:

mohan.csv
babu.csv
mahesh.csv
datvik.csk
... etc

そして

$ cat mohan.csv
no,name,dept
1,xyz,hr
2,abc,sales

私のスクリプトの出力:

$ cat Consolidate.csv
no,name,dept
1,xyz,hr
2,abc,sales
babu.csv
mahesh.csv
datvik.csk
... etc

この問題について助けてください。

ベストアンサー1

さまざまなツールを使用して作業を完了できます。最初のヘッダーを保持し、他のヘッダーを削除したいとします。したがって、他のファイルのヘッダーを削除しながら、変更されていない最初のファイルに追加するだけです。

削除する:mohan.csvinput.txt

$ cat input.txt
babu.csv
mahesh.csv
datvik.csk
... etc

それから:

$ cp mohan.csv consolidate.csv
$ for file in "$(<input.txt)"; do
    sed '/no,name,dept/d' "$file" >> consolidate.csv
  done

または以下を使用してread

$ cp mohan.csv consolidate.csv
$ while read -r file; do
    sed '/no,name,dept/d' "$file" >> consolidate.csv
  done <  input.txt

あるいは、より簡単には、以下sedで純粋な答えを見つけることができます。https://unix.stackexchange.com/a/204343/72707

おすすめ記事