awk

Sekmeyle Ayrılmış Dosyayı 'awk' Kullanarak Ayrıştırma

Sekmeyle Ayrılmış Dosyayı 'awk' Kullanarak Ayrıştırma

'tab', sekmeyle ayrılmış dosyada ayırıcı olarak kullanılır. Bu tür metin dosyası, çeşitli metin verilerini yapılandırılmış bir biçimde depolamak için oluşturulur.  Bu tür dosyaları ayrıştırmak için Linux'ta farklı komut türleri vardır.  'awk' komutu, sekmeyle ayrılmış dosyayı farklı şekillerde ayrıştırmanın yollarından biridir. Sekmeyle ayrılmış dosyayı okumak için 'awk' komutunun kullanımı bu öğreticide gösterilmiştir.

Sekmeyle ayrılmış bir dosya oluşturun:

adlı bir metin dosyası oluşturun kullanıcılar.Txt Bu öğreticinin komutlarını test etmek için aşağıdaki içerikle. Bu dosya kullanıcının adını, e-posta adresini, kullanıcı adını ve şifresini içerir.

kullanıcılar.Txt

Ad                E-posta                       Kullanıcı adı          Şifre
md. Robin         [e-posta korumalı]              robin89                563425
Nila Hasan         [e-posta korumalı]               nila78                245667
Mirza Abbas        [e-posta korumalı]               mirza23                534788
Aornob Hasan       [e-posta korumalı]         arnob45                778473
Nuhas Ahsan        [e-posta korumalı]               nuhas34               563452

Örnek-1: -F seçeneğini kullanarak sekmeyle ayrılmış bir dosyanın ikinci sütununu yazdırın

Aşağıdaki 'sed' komutu, sekmeyle ayrılmış bir metin dosyasının ikinci sütununu yazdıracaktır. Burada, '-F' seçenek, dosyanın alan ayırıcısını tanımlamak için kullanılır.

$ kedi kullanıcıları.Txt
$ awk -F '\t' 'print $2' kullanıcıları.Txt

Komutları çalıştırdıktan sonra aşağıdaki çıktı görünecektir. Dosyanın ikinci sütunu, çıktı olarak görüntülenen kullanıcının e-posta adreslerini içerir.

Örnek-2: FS değişkenini kullanarak sekmeyle ayrılmış bir dosyanın ilk sütununu yazdırın

Aşağıdaki 'sed' komutu, sekmeyle ayrılmış bir metin dosyasının ilk sütununu yazdıracaktır. Buraya, FS (Alan Ayırıcı) değişkeni, dosyanın alan ayırıcısını tanımlamak için kullanılır.

$ kedi kullanıcıları.Txt
$ awk ' print $1 ' FS='\t' kullanıcılar.Txt

Komutları çalıştırdıktan sonra aşağıdaki çıktı görünecektir. Dosyanın ilk sütunu, çıktı olarak görüntülenen kullanıcı adlarını içerir.

Örnek-3: Sekmeyle ayrılmış bir dosyanın üçüncü sütununu biçimlendirme ile yazdırın

Aşağıdaki "sed" komutu, sekmeyle ayrılmış metin dosyasının üçüncü sütununu, FS değişken ve baskı. Burada, FS dosyanın alan ayırıcısını tanımlamak için değişken kullanılır.

$ kedi kullanıcıları.Txt
$ awk 'BEGINFS="\t" printf "%10s\n", $3' kullanıcı.Txt

Komutları çalıştırdıktan sonra aşağıdaki çıktı görünecektir. Dosyanın üçüncü sütunu, burada yazdırılan kullanıcı adını içerir.

Örnek-4: Sekmeyle ayrılmış dosyanın üçüncü ve dördüncü sütunlarını OFS kullanarak yazdırın

OFS (Çıkış Alanı Ayırıcı), çıktıya bir alan ayırıcı eklemek için kullanılır. Aşağıdaki 'awk' komutu, dosyanın içeriğini tab(\t) ayırıcısına göre böler ve ayırıcı olarak tab(\t) kullanarak 3. ve 4. sütunları yazdırır.

$ kedi kullanıcıları.Txt
$ awk -F "\t" 'OFS="\t" yazdır $3, $4 > ("çıktı.txt")' kullanıcıları.Txt
$ kedi çıktısı.Txt

Yukarıdaki komutları çalıştırdıktan sonra aşağıdaki çıktı görünecektir. 3. ve 4. sütunlar, burada yazdırılan kullanıcı adını ve şifreyi içerir.

Örnek-5: Sekmeyle ayrılmış dosyanın belirli içeriğini değiştirin

sub() işlevi, ikame komutu için 'awk'da kullanılır. Aşağıdaki 'awk' komutu, 45 numarayı arayacak ve dosyada aranan numara varsa 90 numara ile değiştirecektir. Değiştirme işleminden sonra dosyanın içeriği çıktıda saklanacaktır.robots.txt dosyası.

$ kedi kullanıcıları.Txt
$ awk  -F "\t"'sub(/45/,90);print' kullanıcıları.txt > çıktı.Txt
$ kedi çıktısı.Txt

Yukarıdaki komutları çalıştırdıktan sonra aşağıdaki çıktı görünecektir. Çıktı.robots.txt dosyası, ikame uygulandıktan sonra değiştirilen içeriği gösterir. Burada, 5. satırın içeriği değişti ve "arnob45", "arnob90" olarak değiştirildi.

Örnek-6: Sekmeyle ayrılmış bir dosyanın her satırının başına dize ekleyin

Aşağıda, 'awk' komutu, '-F' seçeneği, dosyanın içeriğini sekmeye (\t) göre bölmek için kullanılır. OFS, çıktıda alan ayırıcı olarak virgül(,) eklemek için kullandı. sub() işlevi, çıktının her satırının başına '-→' dizesini eklemek için kullanılır.

$ kedi kullanıcıları.Txt
$ awk -F "\t" 'OFS=",";sub(/^/, "---->");$1,$2,$3' kullanıcıları yazdır.Txt

Yukarıdaki komutları çalıştırdıktan sonra aşağıdaki çıktı görünecektir. Her alan değeri virgül (,) ile ayrılır ve her satırın başına bir dize eklenir.

Örnek-7: gsub() işlevini kullanarak sekmeyle ayrılmış bir dosyanın değerini değiştirin

gsub() işlevi, genel ikame için 'awk' komutunda kullanılır. Dosyanın tüm dize değerleri, arama modelinin eşleştiği yerde değiştirilir. sub() ve gsub() işlevleri arasındaki temel fark, sub() işlevinin ilk eşleşmeyi bulduktan sonra ikame görevini durdurması ve gsub() işlevinin ikame için dosyanın sonunda kalıbı aramasıdır. Aşağıdaki 'awk' komutu, dosyada global olarak 'nila' ve 'Mira' kelimelerini arayacak ve tüm oluşumları, arama kelimesinin eşleştiği yerde 'Geçersiz Ad' metniyle değiştirecektir.

$ kedi kullanıcıları.Txt
$ awk  -F '\t' 'gsub(/nila|Mira/, "Geçersiz Ad"); print' kullanıcıları.Txt

Yukarıdaki komutları çalıştırdıktan sonra aşağıdaki çıktı görünecektir. Çıktıda "Geçersiz Ad" kelimesiyle değiştirilen dosyanın 3. satırında iki kez "nila" kelimesi var.

Örnek-8: Sekmeyle ayrılmış bir dosyadan biçimlendirilmiş içeriği yazdırın

Aşağıdaki 'awk' komutu, dosyanın birinci ve ikinci sütunlarını printf kullanarak biçimlendirme ile yazdıracaktır. Çıktı, e-posta adresini parantez içine alarak kullanıcının adını gösterecektir.

$ kedi kullanıcıları.Txt
$ awk -F '\t' 'printf "%s(%s)\n", $1,$2' kullanıcı.Txt

Yukarıdaki komutları çalıştırdıktan sonra aşağıdaki çıktı görünecektir.

Sonuç

Sekmeyle ayrılmış herhangi bir dosya, 'awk' komutu kullanılarak kolayca ayrıştırılabilir ve başka bir sınırlayıcıyla yazdırılabilir. Sekmeyle ayrılmış dosyaları ayrıştırmanın ve farklı biçimlerde yazdırmanın yolları bu öğreticide birden çok örnek kullanılarak gösterilmiştir. Sekmeyle ayrılmış dosyanın içeriğini değiştirmek için 'awk' komutundaki sub() ve gsub() işlevlerinin kullanımları da bu eğitimde açıklanmaktadır. Umarım bu eğitim, okuyucuların bu öğreticinin örneklerini düzgün bir şekilde uyguladıktan sonra sekmeyle ayrılmış dosyayı kolayca ayrıştırmalarına yardımcı olur.

Linux için En İyi 5 Ergonomik Bilgisayar Faresi Ürünleri
Uzun süreli bilgisayar kullanımı bileğinizde veya parmaklarınızda ağrıya neden olur mu?? Sert eklemlerden muzdarip misiniz ve sürekli ellerinizi sıkma...
How to Change Mouse and Touchpad Settings Using Xinput in Linux
Most Linux distributions ship with “libinput” library by default to handle input events on a system. It can process input events on both Wayland and X...
Remap your mouse buttons differently for different software with X-Mouse Button Control
Maybe you need a tool that could make your mouse's control change with every application that you use. If this is the case, you can try out an applica...