Belirli bir sembolün tüm örneklerini bir metin dosyasından nasıl kaldırırım?


13

Ben gibi çift tırnak içine alan alanlar ile CSV dosyası büyük bir (yaklaşık yarım GiB, normal bir metin editörü kullanmak imkansız) var "abc","def"ama tırnaksız bir dosyaya ihtiyacım var (eminim bu dosya tutarlılığını bozmayacak - içindeki değerler içinde virgül kullanılmaz).

Tüm tırnak işaretleri nasıl kaldırılır (yerlerine boşluk koymadan)?

Yanıtlar:


21

tr bunu yapabilir:

tr -d \" < infile > outfile

Ayrıca sedşunları kullanabilirsiniz :

sed 's/"//g' < infile > outfile

1
Neden çıkardın < infile > outfile? IMHO daha bilgilendiriciydi.
Ivan

@Ivan muhtemelen ikinci düşünceye örtük olduğunu düşündüm.
Chris Down

Yalnızca deneyimli komut satırı kullanıcıları için. Ben <birkaç kez daha önce kullanmış olmama rağmen (SQL komut dosyalarını MySQL ve SQLite içine almak için <) Bu durumda kullanmam benim için hemen açık olurdu . İhtiyaç duyabileceklerin daha fazla referansı için tam komut satırı örneğini geri döndürmenin daha iyi olacağını düşünüyorum.
Ivan

@Ivan ve @Chris, dahil etmek için geri döndüm (inceleme beklemede) < infile > outfile, umarım bu tamam.
donothingsuccessfully

Teşekkürler, @donothingsuccessfully. Ben önceki yorum tamamen yanlış yazdım, bu yazık ki düzenleyemiyorum üzücü% -]
Ivan

5

Sed komutunun başka bir sürümü :

sed -i s/\"//g file.txt
  • sed s Team, ed in-

    • -i i n-place (dosyayı yerinde düzenle)
    • ss yerini tutmaz komutu
    • /replacement_from_reg_exp/replacement_to_text/ Beyan
    • \"önünde ters eğik çizgi bulunan tırnak işaretleri ( replacement_from_reg_exp )
    • eğik çizgi belirleyicileri arasındaki boş dize ( replacement_to_text )
    • g g lobal (sıradaki tüm oluşumları değiştirmek için)
  • file.txt dosya adı

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.