menghapus baris tertentu dalam teks sehubungan dengan nomor titik apung

-1

Saya memiliki file data yang terdiri dari string dan angka angka dengan empat kolom sebagai berikut;

ALIC00AUS_R_20183350000.gz -4052052.705667828 4212835.982693942 -2545104.648264054
ALIC00AUS_R_20183350000.gz -4052052.702108623 4212836.006039822 -2545104.654250688
ALIC00AUS_R_20183350000.gz -4052052.694316 4212835.990059 -2545104.643113

Saya perlu menghapus semua baris termasuk 6 angka floating point. Ukuran asli file data terdiri dari beberapa ribu baris. Angka floating point minimum selalu 6 di antara semua angka.

deepblue_86
sumber
Apakah Anda ingin menghapus hanya 6 angka floating point, atau juga 5,4, ... floating point?
aborruso
Bisakah Anda mengedit dan menambahkan contoh output?
hidangan penutup
1
Satu-satunya interpretasi dari pertanyaan Anda yang masuk akal bagi saya adalah bahwa Anda ingin menghapus garis di mana angka floating point memiliki 6 digit setelah titik desimal . Apakah itu benar? jika demikian, haruskah kondisi tersebut diterapkan ke nomor atau setiap nomor dalam barisan?
steeldriver

Jawaban:

3
grep -v -E "\.[0-9]{6}\b" input.txt >output.txt

Berikut penjelasan visual dari perintah: https://explainshell.com/explain?cmd=grep+-v+-E+%22%5C.%5B0-9%5D%7B6%7D%5Cb%22+input.txt+%3Eoutput .txt

Dan di sini regex \.[0-9]{6}\b( https://regex101.com/r/bz5Dzr/1 ):

  • \.cocok dengan karakter. secara harfiah (peka huruf besar kecil)
  • Cocokkan satu karakter yang ada dalam daftar di bawah [0-9] {6}
    • {6} Quantifier - Sama persis dengan 6 kali
    • 0-9 karakter tunggal dalam kisaran antara 0 (indeks 48) dan 9 (indeks 57) (peka huruf besar kecil)
  • \b menegaskan posisi pada batas kata
aborruso
sumber