LoginSignup
3
3

More than 5 years have passed since last update.

TSVファイルをシェルで配列に読み込む #チートシート@シェル芸

Posted at

TSVファイルをシェルで配列に読み込む

whle read line
do
    row=(`echo ${line}`)
    echo ${row[0]}" "${row[1]}"値の処理 ..."
done < "filename"

echo ${line} を``で囲むのがミソ

TSVでも空白でも、あーら不思議。csvreader みたいになる。
(ただし、IDファイルとか、空白や日本語がないものに限る、シェルで扱うの他のコマンドに渡せる引数の値としてとかを想定)

さらにディレクトリ配下のファイルをすべて1行ずつ読みだして、CSVとして処理するとこうなる

for filename in `ls ./*.tsv`
do
    whle read line
    do
        row=(`echo ${line}`)
        echo ${row[0]}" "${row[1]}" 値の処理..."
    done < ${filename}
done

ls *.tsv  でtsvを拡張子に持つファイルが列挙された結果、ファイル名が自動的に配列となって$filenameにとりだされている

ls の変わりに find でもっと条件をしていしてもよいです。

たとえば、データベースから出したTSVがあるディレクトリにたくさんあって、そのIDでだけをとりだしてモニョモニョとか、おもむろに1回だけしたい作業とかによく使うのでメモ。

3
3
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
3
3