Linux で次のコマンド ラインを使用して、入力ファイル (列で構成された txt ファイル) の内容をスプレッドシートとして保存しています。
less input_file > out_put.csv
私の出力ファイルは
問題は出力スプレッドシートにあります。入力ファイル内のすべての列が、出力ファイル (スプレッドシート CSV) の 1 つの列にまとめられています。
txt ファイルをタブ区切りテキストとスプレッドシートとしてより効率的に保存できるように、単純なコードを修正するにはどうすればよいですか。
答え1
まず、less
は単なるページャーで、ファイルを読み取るためのツールです。 実行していることは、input_file を out_put.csv ( cp input_file out_put.csv
) にコピーすることとまったく同じです。 コンテンツはまったく変更されません。
したがって、たとえば を使用してこれをスプレッドシートとして読み取るには、スプレッドシート アプリケーションを開き、 を開いて、スペースを列区切りとして使用するlibreoffice
必要があります。input_file
さて、本当にファイルを変換したい場合はコンマ区切り値形式 ( .csv
) を使用する場合は、カンマを追加する必要があります。このコマンドは、各行のすべてのスペースをカンマに置き換え、出力を次のように保存しますoutput.csv
。
sed 's/ */,/g' input_file > output.csv
上記のコマンドはsed
、ここではその置換演算子一般的な形式は で、は にs/pattern/replacement/
置き換えられます。末尾の により、 は に置き換えられます。pattern
replacement
g
全て各行にパターンが出現します。これがないと、最初のものだけが置き換えられます。私が指定したパターンは、(スペース) の後に 0 個以上の
*
スペース ( *
) が続くもので、 で置き換えるように指示しました,
。これは基本的に、「1 つ以上のスペースの出現をコンマで置き換える」ことを意味します。