web-gelistirme-sc.com

Her satırın ilk sütununu bir CSV dosyasından nasıl alabilirim?

Bir giriş CSV dosyasındaki her satırın ilk sütununu nasıl alır ve yeni bir dosyaya nasıl çıktı? awk kullanarak düşünüyorum ama nasıl emin değilim.

25
Junba Tester

Bunu dene:

 awk -F"," '{print $1}' data.txt

data.txt dosyasındaki her girdi satırını , karakterine göre (-F ile belirtildiği şekilde) farklı alanlara böler ve ilk alanı (sütun) stdout'a yazdırır.

55
Levon

Yapılabilir:

$ cut -d, -f1 data.txt
49
user647772

Giriş  

a,12,34
b,23,56

Kod  

awk -F "," '{print $1}' Input

Biçim

awk -F <delimiter> '{print $<column_number>}' Input
6
Debaditya
echo "a,b,c" | cut -d',' -f1 > newFile
6
Nykakin

Bu grep kullanılarak elde edilebilir:

$ grep -o '^[^,]\+' file.csv
3
kenorb

Perl kullanımı:

Perl -F, -lane 'print $F[0]' data.txt > data2.txt

Bu komut satırı seçenekleri kullanılır: 

  • Giriş dosyasının her satırı etrafındaki -n döngüsü
  • -l yeni satırları işlemeden önce kaldırır ve sonradan tekrar ekler 
  • -a autosplit modu - giriş satırlarını @F dizisine bölün. Varsayılan olarak boşlukta bölme. 
  • -e Perl kodunu çalıştır 
  • -F autosplit değiştiricisi, bu durumda , öğesine böler 

Orijinal dosyanızı yerinde değiştirmek istiyorsanız, -i seçeneğini kullanın:

Perl -i -lane 'print $F[0]' data.txt


Orijinal dosyanızı yerinde değiştirmek ve yedek bir kopya oluşturmak istiyorsanız:

Perl -i.bak -lane 'print $F[0]' data.txt


Verileriniz virgülle ayrılmış değil boşlukla ayrılmışsa:

Perl -lane 'print $F[0]' data.txt

0
Chris Koknat