慣用的なカットの使用は
になりますcut -f2- input > output
区切り文字がタブ ("\t") の場合。
または、単純に awk
で マジック (スペースとタブ区切りの両方で機能します)
awk '{$1=""}1' input | awk '{$1=$1}1' > output
最初の awk はフィールド 1 を削除しますが、区切り記号を残し、2 番目の awk は区切り記号を削除します。デフォルトの出力区切り文字はスペースです。タブに変更する場合は、-vOFS="\t"
を追加します
更新しました
更新された入力に基づくと、問題はカットが複数の列として扱われる最初のスペースです。対処する 1 つの方法は、カットする前にまずそれらを取り除くことです
sed 's/^ *//' input | cut -d" " -f2- > output
または awk
を使用します この場合も同様に機能する上記の代替方法。
cut
を使用できます --complement
のコマンド オプション:
cut -f1 -d" " --complement 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