1. ホーム
  2. linux

[解決済み] Linuxでデータファイルから最初の列(実際には行名)を削除する方法は?

2022-03-14 12:43:22

質問

何千もの列と行を持つデータファイルがあります。私は実際、行カウンタである最初の列を削除したいです。私はLinuxでこのコマンドを使用しました。

cut -d " " -f 2- input.txt > output.txt

が、出力には何も変化がありません。なぜうまくいかないのか、どうすればいいのか、誰か知っていますか?

私の入力ファイルはこのようなものです。

col1 col2 col3 col4 ...
     1 0 0 0 1
     2 0 1 0 1
     3 0 1 0 0
     4 0 0 0 0 
     5 0 1 1 1 
     6 1 1 1 0
     7 1 0 0 0 
     8 0 0 0 0
     9 1 0 0 0
     10 1 1 1 1
     11 0 0 0 1
    .
    .
    .

このような出力にしたいのですが。

col1 col2 col3 col4 ...
0 0 0 1
0 1 0 1
0 1 0 0
0 0 0 0 
0 1 1 1 
1 1 1 0
1 0 0 0 
0 0 0 0
1 0 0 0
1 1 1 1
0 0 0 1
.
.
.

も試してみました。 sed コマンドを使用します。

 sed '1d' input.file > output.file

しかし、それは最初の列ではなく、最初の行を削除します。

どなたか教えてください。

どのように解決するのですか?

Karafka CSV ファイルがあったので、セパレータに ","を追加しました。

cut -d"," -f2- input.csv  > output.csv

次に、ループを使って、ディレクトリ内のすべてのファイルを調べました。

# files are in the directory tmp/
for f in tmp/*
do
    name=`basename $f`
    echo "processing file : $name"
    #kepp all column excep the first one of each csv file 

    cut -d"," -f2- $f > new/$name
    #files using the same names are stored in directory new/  
done