ファイルをタブ区切りのテキストとスプレッドシートとして保存

ファイルをタブ区切りのテキストとスプレッドシートとして保存

私は入力ファイル(列で構成されたtxtファイル)の内容をスプレッドシートとして保存するためにLinuxで次のコマンドラインを使用しています。

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スペースを列区切り文字として使用する必要があります。

        区切り文字でスペースを選択したlibreofficeテキストのインポートダイアログボックス

今本当にファイルを次のように変換したい場合斑点区切り値型(.csv)、コンマが必要です。このコマンドは、各行のすべてのスペースをコンマで置き換え、出力を次のように保存しますoutput.csv

sed 's/  */,/g' input_file > output.csv

上記のコマンドはsedここで使用されます。代替演算子。一般的な形式はでs/pattern/replacement/置き換えられます。最後に置き換えます。patternreplacementgみんなパターンが各行で発生する回数。パターンがない場合、最初の行のみが置き換えられます。私が与えたパターンは(空白1つ)の後に0個以上(つまり、意味するものです*)空白(*)があり、に置き換えるようにしました,。これは基本的に「1つ以上のスペースをカンマで置き換える」という意味です。

関連情報