GNU/Linux >> Linux の 問題 >  >> Linux

Linuxで区切り文字が異なるテキストファイルから列を抽出する

コマンドが区切り文字としてタブとスペースの両方で機能する必要がある場合は、 awk を使用します :

awk '{print $100,$101,$102,$103,$104,$105}' myfile > outfile

5 つのフィールドを指定する必要がある限り、それらを入力するだけで問題ありません。より長い範囲の場合は、for を使用できます。 ループ:

awk '{for(i=100;i<=105;i++)print $i}' myfile > outfile

cut を使用する場合 、 -f を使用する必要があります オプション:

cut -f100-105 myfile > outfile

フィールド区切り文字が TAB と異なる場合 -d を使用して指定する必要があります :

cut -d' ' -f100-105 myfile > outfile

cut コマンドの詳細については、man ページを確認してください。


次のような区切り文字でカットを使用できます:

スペース区切りあり:

cut -d " " -f1-100,1000-1005 infile.csv > outfile.csv

タブ区切り付き:

cut -d$'\t' -f1-100,1000-1005 infile.csv > outfile.csv

間隔のリストを抽出できるバージョンのカットを提供しました...

役に立てば幸いです!


Linux
  1. Linuxでのファイルパーミッションと例

  2. Linux シェルから、現在とは異なる作業ディレクトリでプログラムを実行するにはどうすればよいですか?

  3. Linuxでテキストファイルからバイナリを見分ける方法

  1. sed を使用して Linux でテキスト ファイルの任意の行の最初の 5 文字を削除する

  2. LinuxシェルからのSQLクエリを含むCSVファイルの読み取り

  3. C#(.NETコア)を使用して、LinuxからWindows共有にファイルをコピーします

  1. LinuxでPDFからOCRでテキストを抽出するには?

  2. nano を使用してファイルからすべてのテキストを選択するにはどうすればよいですか?

  3. Linuxでテキストファイルから特定の行を表示するには?