- 1. Giriş
- 2. Temeller
- 3. Stream'lar, Pipe'lar ve Yönlendirmeler
- 4. Dosya Adı Genişletme
- 5. İş Kontrolü
- 6. Süreç Yönetimi
- 7. Alıntılar
- 8. Temel Dosya Yönetimi
- 9.
grep - 10.
find - 11.
sedMetni filtrele ve dönüştür(çevir) - 12. Değişme Tarihi
- Bu belge, genellikle komut satırında yapılan şeylere odaklanacaktır.
- Odak noktası, tek seferlik geçici görevler için araçlar ve tekniklerdir.
- Belgedeki çoğu şey kabuk komut dosyasına uygulanabilir. Ancak, bu belgede tamamen odaklanılan şey kabuk programlama değildir.
- Bu belge Linux/UNIX içindir.
- Bu belge benim tarafımdan "Türkçe" diline uyarlanmıştır. Çeviriler %100 doğru değildir, eklediğim ve çıkardığım kısımlar mevcut.
| komut | açıklama |
|---|---|
man |
Komutlar hakkında bilgi verir. örneğin: man date |
date |
Tarih ve zamanı çıktı verir. |
cal |
Takvimi çıktı verir. |
ls |
Bulunduğunuz dizinde hangi dosyaların bulunduğunu söyler -l seçeneği ile kullanıldığında, komut, sahibini, boyutunu, dosyanın tarihini, izinlerini, vb. döndürecektir. |
cat |
Dosyanın içindekilerini gösterir. |
cp |
Dosya kopyalar. |
mv |
Dosya taşır. |
diff |
İki dosyanın farklılıklarını gösterir. |
rm |
Dosya siler. |
grep |
Bir veya daha fazla dosyadaki dizelerin içindekileri bulur. |
pwd |
Mevcut çalışma dizininin adını yazdırır. |
cd |
Mevcut dizini değiştirir. |
| Klavye Kısayolu | Açıklama |
|---|---|
| Ctrl+A | İmleci satırın başlangıcına taşır. |
| Ctrl+E | İmleci satırın sonuna taşır. |
| Alt+F | İmleci tek sözcük ileriye taşır. |
| Ctrl+F | İmleci bir karakter ileriye taşır. |
| Alt+B | İmleci tek sözcükle geriye taşır. |
| Ctrl+B | İmleci bir arayla geriye taşır. |
| Ctrl+XX | İmlecin konumunu geçerli konumla önceki konum arasında değiştirir. |
| Klavye Kısayolu | açıklama |
|---|---|
| Ctrl+U | İmlecin sol tarafında kalan tüm karakterleri keser. |
| Ctrl+K | İmlecin sağ tarafında kalan tüm karakterleri keser. |
| Ctrl+W | İmlecin solundaki bir sözcüğü keser. |
| Ctrl+H | İmlecin solundaki bir karakteri keser. |
| Alt+D | İmlecin sağındaki bir sözcüğü keser. |
| Ctrl+D | İmlecin sağındaki bir karakteri keser. |
| Ctrl+Y | Kesilen karakterleri yapıştırır. |
| Ctrl+_ | Son silmeyi geri alır. |
| Tab | Komut dizgelerini tamamlar ya da kullanılabilir tüm komutları listeler. |
| Klavye Kısayolu | Açıklama |
|---|---|
| Crtl+R | Komut geçmişini arar. |
| Ctrl+G | Komut geçmişi seçkesini iptal eder. |
| Ctrl+P/YUKARI | Geçmişte kullandığınız bir önceki komutu gösterir. |
| Ctrl+N/AŞAĞI | Geçmişte kullandığınız bir ileriki komutu gösterir. |
Linux kabuğunun giriş ve çıkışları "Stream" adı verilen karakter dizileridir. Üç adet standart I/O (giriş-çıkış) akışı bulunur:
| Adı | Açıklama | Dosya Tanımlayıcısı |
|---|---|---|
| stdout | Komutlardan çıktıyı görüntüler. | 1 |
| stderr | Komutlardan hatayı görüntüler | 2 |
| stdin | Komutlara giriş sağlar | 0 |
Giriş ve çıkış yeniden yönlendirmeleri büyüktür ve küçüktür işareti kullanılarak yapılır (<>)
| Bracket type | description |
|---|---|
| > | dosyaya Stream gönderir. Örneğin: ls a > o.txt |
| >> | dosyaya Stream ekleme. Örneğin: ls b >> o.txt |
| >& | Stream'ın içine yazar. Örneğin: ls c > o2.txt 2>&1 |
| < | Dosyadan Stream alır. Örneğin: wc < o.txt |
| << | Betik içindeki bir komuta beslenecek metni gömer. Örneğin: cat << EOF > output.txt line 1 line 2 line 3 EOF echo tamamlandı |
komut1 > sout.txt 2> serr.txt
komut1 > sone.txt 2>&1
Veya
command1 &> sone.txt
command1 &> /dev/null
/dev/null boş bir aygıt dosyasıdır. Bu, kendisine yazılan her şeyi atacak ve okuma sırasında EOF döndürecektir.
Pipe, bir komutun standart çıktısını başka bir komutun girişine yeniden yönlendirebilir.
command1 | command2 paramater1 | command3 parameter1 parameter2 | command4
Örnekler:
-
Dosya içeriğini yalnızca bir kez yazdırır. Tekrar eden kayıtları kaldırır:
sort file1 | uniq -
En sık kullanılan 5 komutu yazdırır:
history | awk '{a[$2]++}END{for(i in a){print a[i] " " i}}' | sort -rn | head -5 -
Dosya türlerini ve sıklığını yazdırır:
ls | rev | cut -f1 -d'.' | rev | sort | uniq -c | sort -n
- Genişletilmiş argümanların kısaltmasıdır.
- Bazı komutlar hem standart girişten hem de komut satırı bağımsız değişkenleri olarak bağımsız değişkenler alabilir.
- Ancak, standart girişten giriş alamayan bazı komutlar vardır. Yalnızca bağımsız değişkenlerden gelen girdileri kabul ederler. Bu komutlar için args kullanmamız gerekir.
- xargs, Standart girişten bağımsız değişkenlere girişi bir komuta dönüştürür.
- Bağımsız değişkenleri izin verilen bir sayıya böler ve komutu her bağımsız değişken grubu üzerinde art arda çalıştırır.
- -n seçeneği kullanılarak, komut başına bağımsız değişken sayısı belirtilebilir.
find . | xargs -n1 basename - Std girişini bir yer tutucuya atamak için,
-I{}. Yer tutucu genellikle std girişini bir komutun ortasına yerleştirmek istediğimizde kullanılır.
ls | xargs -I{} echo {} dosya bulundu
Örnekler:
- Dizindeki dosyalardaki kod satırlarının sayılarını/sözcükleri/karakterleri yazdırır.
ls | wc - Dosya türlerini ve frekanslarını yazdırır.
find . -type f | xargs basename -a | grep "\." | rev | cut -f1 -d'.' | rev | sort | uniq -c | sort -n - Dizindeki tüm dosyaları yeniden adlandırır.
ls | xargs -I{} mv {} {}.bkp
- Komut standart girişten okur ve standart bir çıktıya ve bir veya daha fazla dosyaya yazar
- Bu, hem ekranda bir komutun çıktısını görmek istediğimizde hem de çıktıyı daha sonra analiz için bir dosyaya kaydetmek istediğimizde yararlıdır.
Örnek:
ls | tee fileList.txt
- Joker karakter, dosya adı veya klasör adında bir veya daha fazla karakteri temsil etmek için kullanılan bir karakterdir.
- Dosya küreleme, bu joker karakterleri tanıyan ve genişletmeyi yapan işlemdir.
| Joker karakter | Açıklama | örnek | eşleşenler | eşleşmeyenler |
|---|---|---|---|---|
| * | 0 ve daha fazla karakter ile eşleşir. | ls to* | to, tom, ton, tow, tommy, tommie | tata, tea |
| ? | 1 karakter ile eşleşir. | ls to? | tom, tow, ton | to, tommy, tommie, tata, tea |
| [abc] | Parantez içindeki karakterlerden herhangi biriyle eşleşir. | ls [bc]at | bat, cat | Bat, Cat, rat |
| [a-z] | Parantez içindeki aralıktaki karakterlerden herhangi biriyle eşleşir. | ls day[1-9] | day1, day2 upto day9 | day11, day |
| [!abc] | Parantez içinde olmayan herhangi bir karakterle eşleşir. | ls [!r]at | bat, cat, Bat, Cat, Rat | rat |
| [!a-z] | Parantez içindeki aralıkta olmayan herhangi bir karakterle eşleşir. | ls day[!1-9] | day0, days | day1 upto day9 |
- Komut satırı, bir işlemin yürütülmesini durdurma/askıya alma ve askıya alınmış bir işlemi daha sonraki bir zamanda devam ettirme yeteneği sağlar.
- Çalışan her programa iş denir (Buradaki "iş" bir kabuğun bir süreç grubunu temsil eder).
- Her işe benzersiz bir kimlik atanır.
| Komut | Açıklama |
|---|---|
jobs |
Geçerli kabuğun çalışan ve askıya alınan tüm işlerini listeler. |
fg |
İşi ön plana çıkarır. |
bg |
İşi arkaplana çıkarır. |
kill |
İşi sonlandırır. |
stop |
İşi durdurur. |
| Ctrl+c | İşi sonlandırır. |
| Ctrl+z | İşi askıya alır. |
Örnekler:
- İşi önplana çıkarmak için:
fg %2 # burada 2 iş numarasıdır - Bir işi askıya almak için:
stop %2 # burada 2 iş numarasıdır - Bir işi arka planda sürdürmek için.
bg %2 # burada 2 iş numarasıdır - Bir işi sonlandırmak için:
kill %2 # burada 2 iş numarasıdır
- Birlikte çalışan işlemlerin anlık görüntüsünü almak için
pskomutu kullanılır. - Bir komutun işlem kimliğini almak için:
ps -ef | grep command - Bir işlemin bitmesini beklemek için:
bash wait <process id> - Bir işlemi öldürmek için:
kill <process id> - Tüm alt işlemlerin tamamlanmasını beklemek için:
wait - Belirli bir işlemin tamamlanmasını beklemek için:
wait 1234 # burada 1234 işlem kimliğidir
jobsGeçerli kabuğun yönettiği işlerin listesini bildirir.psSistemde çalışan bütün işlemlerin listesini bildirir.
- Alıntılar, karakterlerden veya kelimelerden özel anlamları çıkarmak için kullanılır.
- Tek tırnak işareti kullanıldığında(''), tırnak içindeki her karakter korunur ve değerlendirilmez.
- Çift tırnak işareti kullanıldığında ("") dolar işareti, ters tırnak ve ters taksim işareti değerlendirilir ve yorumlanır.
- \ (ters taksim) ise karakterin gerçek değerini korumak için kullanılır.
Örnekler:
| Örnek | Komut | Çıktı |
|---|---|---|
| Alıntı olmadan | echo $HOME |
/home/user1/ |
| Kaçış dizisi ile | echo \$HOME |
$HOME |
| Tek tırnak ile | echo '$HOME' |
$HOME |
| Çift tırnak ile | echo "$HOME" |
/home/user1/ |
| Komut | Açıklama |
|---|---|
ls |
Geçerli dizinin içindekileri listeler. |
ls * |
Geçerli dizinin içindekileri alt-dizinler ile birlikte listeler. |
ls -l |
Geçerli dizinin içindekileri dosya sahibi, izinler, tarih ve boyutu ile listeler. |
ls -a |
Gizli dosyaları listeler. |
ls -t |
Dosyaları son değiştirilme tarihine göre azalan sırada listeler. |
ls -rt |
Dosyaları son değiştirilme tarihine göre artan sırada listeler. |
ls -R |
Geçerli dizinin ve alt dizinin dosyalarını son alt dizine özyinelemeli olarak listeler. |
ls /path/to/dirextory |
Belirtilen dizindeki dosyaları listeler. |
| Komut | Açıklama |
|---|---|
cat demo.txt |
Dosyanın içindekilerini çıktı verir. Nispeten küçük dosyalarda kullanılır. |
head demo.txt |
Show the first part of the file Dosyanın ilk bölümünü gösterir. |
tail demo.txt |
Show the last part of the file Dosyanın son bölümünü gösterir. |
tail -f demo.txt |
Dosya büyüdükçe dosyaya eklenen metni gösterir. |
less demo.txt |
Dosyanın içeriğini bir ekranda bir seferde gösterir. |
less -p "regular" demo.txt |
Dizgenin eşleştiği ilk satırdaki dosyanın içeriğini gösterir. |
strings -a binaryfile |
Dosyadaki tüm yazdırılabilir karakterlerin sırasını yazdırır. |
diff file1 file2 |
İki dosya arasındaki farkları gösterir. |
| Komut | Açıklama |
|---|---|
cp dosya1 dosya2 |
dosya1'den dosya2'ye kopyalama |
cp dosya1 dosya2 dizin1 |
dosya1 ve dosya2'yi dizin1'e kopyalama |
cp -R dizin1 dizin2 |
dizin1'deki içerikleri dizin2'ye kopyalama |
cp *.txt dizin1 |
Sonu .txt olan bütün dosyaları dizin1'e kopyalama |
| Komut | Açıklama |
|---|---|
mv dosya1 dosya2 |
dosya1'i dosya2 olarak yeniden adlandırma |
mv dosya1 dizin1/ |
dosya1'i dizin1'e taşıma |
mv *.jpg dizin1/ |
Sonu .jpg olan bütün dosyaları dizin1'e taşıma |
| command | description |
|---|---|
rm dosya1 |
dosya1'i siler. |
rm file1 file2 |
dosya1 ve dosya2'yi siler. |
rm *.png |
Sonu .png olan bütün dosyaları siler. |
rm -d emptyDirectory |
Remove an empty directory Boş bir dizini siler. |
rm -r directory1 |
Tüm dosyaları, alt dizinleri ve dizin1 dizinini silme. |
- Sembolik bağlantı, başka bir dosyaya veya dizine işaret eden bir dosyadır.
- Dosya bağlantılarının 2 adet biçimi bulunur.
- Sabit Bağlantı -> Mevcut dosya için ek bir addır. Her dosya benzersiz bir numara ile ilişkilendirilir. Bu benzersiz numaraya inode denir. Sabit Bağlantı, 2 veya daha fazla dosya adını aynı inode ve sırayla aynı dosyayla ilişkilendirir. Orijinal dosya kaldırılırsa, içeriğe sabit bağlantı yoluyla erişilebilir.
- Yumuşak Bağlantı -> Bir dosya veya dizine dolaylı bir işaretçidir. İçeriğine değil, yalnızca orijinal dosyanın yoluna sahiptir.
| Komut | Açıklama |
|---|---|
ln dosya1 bağlantu1 |
dosya1'e sabit bağlantı oluşturun (bağlantı1) ile. |
ln -s dosya1 bağlantı1 |
dosya1'e yumuşak bağlantı oluşturun (bağlantı1) ile. |
| command | description |
|---|---|
cd |
Ev dizinine değiştirir. (Uçbirimde şuan olduğunuz dizini) |
cd ~ |
Ev dizinine değiştirir. (Uçbirimde şuan olduğunuz dizini) |
cd - |
Önceki dizine döner. (Uçbirimde şuan olduğunuz dizini) |
cd .. |
Üst dizine değiştirir. (Uçbirimde şuan olduğunuz dizini) |
cd \ |
Kök dizini değiştirir. (Uçbirimde şuan olduğunuz dizini) |
cd ~/dir1/dir2 |
Ana dizine göre dizine geçer. |
- Dosyalarda kalıp arar ve giriş kalıbıyla eşleşen her satırı çıktı verir.
Kullanımı:
grep -<options> <pattern> <filenames>bu şekildedir. - Grep, tek bir dosyada veya birden çok dosyada arama yapmak için kullanılabilir.
| option | description |
|---|---|
| -i | Durumu göz ardı eder. |
| -n | Satır numaralarını satırlarla birlikte gösterir. |
| -v | Desen(istenen kalıba)'e uymayan satırları gösterir. |
| -c | Eşleşen satırların sayısını gösterir. |
| -l | Eşleşen desene sahip dosyanın dosya adını gösterir. |
| -o | Yanlızca eşleşen dizeyi yazdırır, yani eşleşen dizeye sahip bütün satırlar yazdırılmaz. |
| -A<n> | Eşleşmeden sonrasına n satırını dahil et. |
| -B<n> | Eşleşmeden öncesine n satırını dahil et. |
| -C<n> | Eşleşmeden sonrasına ve öncesine n satırını dahil et. |
- diyelim ki bir demo dosyası(demo.txt) aşağıdaki içeriğe sahip
BU BÜYÜK HARFLİ
bu küçük harfli
Bu normal çizgili
Bu satır da normal
Satır sayısı 4
Satır #5
son satır
-
Bir dosyada bir dize arar.
grep "bu" demo.txt -
Dosyada büyük/küçük harf eşleşmesi olmadan bir dize arar.
grep -i "bu" demo.txt -
Bir dosyada bir dize arayın ve hem satır numarasını hem de çıktıyı alır.
grep -n "bu" demo.txt -
Aranan dizeyle eşleşen satır sayısını alır.
grep -c "bu" demo.txt -
Aranan dizenin bulunduğu dosya adını alır.
grep -l "bu" demo.txt -
Eşleşen satırdan sonra 2 satır alır.
grep -A2 "Bu" demo.txt -
Eşleşen satırdan önce 2 satır alır.
grep -B2 "Bu" demo.txt -
Eşleşen satırdan önce ve sonra 2 satır alır.
grep -C2 "Bu" demo.txt
- Düzenli ifadeler, metindeki arama düzenini belirten karakter dizileridir.
- Düzenli ifadelerde, farklı karakterlerin farklı anlamları vardır.
| Karakter | Açıklama |
|---|---|
| [abc] | Köşeli parantez içindeki karakterlerden herhangi biriyle eşleşir. |
| [a-d] | Köşeli parantez içinde belirtilen aralıktaki karakterlerden herhangi biriyle eşleşir. |
| ^start | Yalnızca desen satırın başındaysa desenle eşleşir. |
| end$ | Yalnızca desen satırın sonundaysa desenle eşleşir. |
| [^abc] | Köşeli parantez içinde OLMAYAN herhangi bir karakterle eşleşir. |
| [^a-d] | Aralıkta OLMAYAN herhangi bir karakterle eşleşir. |
| . | Herhangi bir karakterle eşleşir. |
| * | Önceki karakterin 0 veya daha fazla tekrarını hesaplar. |
| .* | Herhangi bir karakterin sıfır veya daha fazlasıyla eşleşir. |
-
Herhangi bir karakterle eşleşme:
grep "[Tt]his" demo.txt -
Arama düzeniyle başlayan satırı arayın:
grep "^last" demo.txt -
Arama modeliyle biten satırı arayın:
grep "regular$" demo.txt -
Belirtilen aralıkta bir karaktere sahip satırı arayın:
grep "[0-9]" demo.txt -
Belirtilen aralıkta karakter içermeyen satırı arayın:
grep "[^0-9]" demo.txt -
Ortadaki karakterlerin bilinmediği bir satır arayın
grep "line.*regular" demo.txt
Not: grep, arama deseni bölümünde normal ifadelere sahip olabilir ve aranacak dosyalar bölümünde joker karakterlere sahip olabilir.
findkomutu dosya ve dizin listesini aramak ve bulmak için kullanılır.- Döndürülen liste, find komutunda kullanılan koşulları karşılayacaktır.
- Sözdizimi bu şekildedir.
find [starting point] [expression] -exec [command],findtarafından bulunan dosyalarda komut çalıştırmak için kulanılabilir.
- Belirli bir isime sahip dosyaları bulmak için:
find . -name demo.txt - Belirli bir kalıba sahip dosyaları bulmak için:
find ./Codes -name *.cpp - Belirli ada sahip dizinleri bulmak için:
find . -name Codes -type d - İzini 777 olrak ayarlanmış dosyaları bul ve onların izinlerini 644 olarak değiştir:
find . -type f -perm 0777 -print -exec chmod 644 {} \; - Bul ve dosyaları sil:
find . -type f -name "*.bkp" -exec rm -f {};
- Kalıp arar ve kalıbı düzenler
- Hem dosyalarda hem de stdin'de çalışır
- Orijinal dosyalar güncellenmez
- Sonuçlar standart çıktıya atanır.
- Sözdizimi bu şekildedir:
sed 'instructions' file - Komutun biçimi şu şekildedir.
'[adres]komut/düzenli_ifade/değiştir/değiştirici'- Örneğin: '5,15s/abc/ABC/g' -> 5 ila 15 satırlarında abc'yi ABC ile değiştirecektir.
- Buradaki g değiştiricisi, satırdaki tüm abc oluşumlarının ABC ile değiştirileceğini belirtir.
- Örneğin: '5,15s/abc/ABC/g' -> 5 ila 15 satırlarında abc'yi ABC ile değiştirecektir.
- Adres kullanıldığında adrese ait satırlar incelenir/değiştirilir. ->
sed '1,100 s/A/a/' file.txt. Örneğin bu komut, değiştirmeyi ilk 100 satırla sınırlar. - Varsayılan olarak tüm satırlar yazdırılır. '-n' bayrağı kullanıldığında bu davranış bastırılır. Açık bir yazdırma isteği bulunmadıkça hiçbir şey yazdırılmayacaktır.
- Adres olarak bir kalıp kullanılabilir->
sed -n '/start/,/stop/ p' file.txt - '!' kullanıldığı zaman, komut adresin dışında çalıştırılır. ->
sed -n '/match/ !p' file.txt
| Komut | Açıklama |
|---|---|
| d | Siler. |
| p | Çıktı verir (yazdırır). |
| s | Yerine geçirir. |
| q | Çık. |
| a | Satırdan sonra bir kalıp ekle. |
| i | Satırdan önce bir kalıp ekle. |
| c | Satırı değiştirir. |
| y | Değiştirir. |
- Boş satırları kaldırır:
sed '/^$/d' file.txt - Arama dizesini içeren bütün satırları kaldırır:
sed '/Search/d' file.txt - Arama dizesinin tüm kopyalarını kaldırır:
sed 's/Search//g' file.txt - Arama dizesi içeren satırları çıktı verir:
sed '/Search/ p' file.txt - Bir dizeyi başka bir dizeyle değiştirir:
sed 's/oldString/newString/g' file.txt - Sondaki boşlukları kaldırır:
sed 's/ *$//' file.txt - Baştaki boşlukları kaldırır:
sed `s/^ *//' file.txt - Her satırın başına boşluk ekler:
sed 's/^/ /' file.txt - İlk 10 satırı yazdırır
sed '10 q' file.txtsed -n '1,10 p' file.txt - Bir kalıptan sonra satır ekler
sed '/pattern/ a add line here' file.txt - Bir kalıptan önce satır ekler
sed '/pattern/ i add line here' file.txt - Bir kalıpla bir satırı değiştirir:
sed '/pattern/ c line changed here' file.txt - Değiştir a->p, b->q, c->r
sed 'y/abc/pqr/' file.txt
- Sed metnin belirli bölümlerini gruplara ayırmaya izin verir.
- Bu gruplar manipüle edilebilir.
- Grup, arama dizesinde parantez içindeki ("" ve ")" ifadesinin içine alınır.
- Her gruba bir numara atanır. İlk gruba \1 atanır vb.
- \1 hem kalıp dizesinde hem de değiştirme dizesinde olabilir.
- Birinci ve ikinci sütunları değiştir
sed 's/\([a-z]*\) \([a-z]*\)/\2 \1/' file.txt - print lines which have consecutive duplicate words
sed -n '/\([a-z][a-z]*\) \1/p' file.txt - remove consecutive duplicate words in a line
sed 's/\([a-z][a-z]*\) \1/\1/' file.txt
- sed metni okuduğunda, her satır geçici bir alana yerleştirilir.
- Yeni bir satır okunduğunda, geçici boşlukta eski metin yeni satırla değiştirilir.
- Bu geçici alana kalıp alanı denir.
- Hold Buffer uzun süreli bir depolama gibidir. metin, desen alanına ve desen alanından kopyalanabilir.
| Komut | Tanım |
|---|---|
| x | Değişim tutma alanı ve desen alanı. |
| h | Desen arabelleğini bekleme alanına kopyalar. |
| H | Tutma alanına desen arabelleği ekler. |
| g | Tutma alanını desen alanına kopyalar. |
| G | Bekletme arabelleğini desen arabelleğine ekler. |
- kalıp eşleşmesinden önce ve sonra bir satır yazdırır:
sed -n '/999/ !{x;d};/999/ {x;p;x;p;n;p}' file.txt - her satırdan sonra boşluk ekler:
sed 'G' file.txt sed '/start/ {x;p;x}' file.txtkalıbıyla eşleşen her satırın üstüne boş satır ekler.- Kalıpla eşleşen her satırdan sonra boş satır ekleyin
sed '/start/ {G}' file.txt sed '/start/ {x;p;x;G}' file.txtkalıbıyla eşleşen her satırın önüne ve arkasına boş satır ekleyin.
- Ters kronolojik yolda, yani en son yardım en üsttedir.
| İsim | Tarih | Açıklamayı Değiştir |
|---|---|---|
| Utsav Barmen | 25 Ocak 2022 | Bekleme, globbing, grep -o eklendi; sabit yazım hataları |