penggunaan idiomatis dari cut adalah
cut -f2- input > output
jika Anda membatasi adalah tab ("\t").
Atau, cukup dengan awk
sihir (akan berfungsi untuk pembatas ruang dan tab)
awk '{$1=""}1' input | awk '{$1=$1}1' > output
awk pertama akan menghapus bidang 1, tetapi meninggalkan pembatas, awk kedua menghapus pembatas. Pembatas keluaran default adalah spasi, jika Anda ingin mengubah ke tab, tambahkan -vOFS="\t"
ke awk kedua.
DIPERBARUI
Berdasarkan input Anda yang diperbarui, masalahnya adalah ruang awal yang dipotong diperlakukan sebagai beberapa kolom. Salah satu cara mengatasinya adalah dengan membuangnya terlebih dahulu sebelum memberi makan untuk dipotong
sed 's/^ *//' input | cut -d" " -f2- > output
atau gunakan awk
alternatif di atas yang akan bekerja dalam kasus ini juga.
Anda dapat menggunakan cut
perintah dengan --complement
opsi:
cut -f1 -d" " --complement input.file > output.file
Ini akan menampilkan semua kolom kecuali yang pertama.
@Karafka Saya memiliki file CSV jadi saya menambahkan pemisah "," (Anda dapat menggantinya dengan milik Anda
cut -d"," -f2- input.csv > output.csv
Kemudian, saya menggunakan loop untuk menelusuri semua file di dalam direktori
# 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