Mac'te mevcut bir metin dosyasının belirli bir satırına metin eklemek için, Düzenli Kısayollar kabuk eylemini kullanarak düzenlenmiş bir kopya oluşturun, inceleyin, ardından Finder'da yeniden adlandırın. Bu kılavuz, kullan-at örneğiyle 3. satırdan önce bir satır ekler.
Görev, çevreleyen satırların sırasını koruyarak küçük, yerel bir düz-metin dosyasına bir satır ekmektir. Tam olarak bir dosya kabul eden bir Finder kısayolu oluşturacaksınız. Ekleme metni ve satır numarası betikte yer alıyor, bu da aynı düzenlemeyi kullan-at kopyalar üzerinde tekrar etmeyi kolaylaştırır.
"3. satıra ekle" ne anlama gelir?
Bu yazıda ekleme, yeni metni mevcut numaralı satırdan önce yerleştirmek anlamına gelir. Üç orijinal satırla, Huş metnini 3. satırdan önce eklemek dört satır üretir:
| Pozisyon | Orijinal dosya | Düzenlenmiş dosya |
|---|---|---|
| 1 | Sedir | Sedir |
| 2 | Akçaağaç | Akçaağaç |
| 3 | Söğüt | Huş |
| 4 | — | Söğüt |
Satır, editördeki görsel kaydırma ile oluşturulan bir satır değil, yeni satır ile ayrılmış bir kayıttır. Boş satırlar sayılır. Örnek, son satırdan sonra yeni satır olan gewöhnlich UTF-8 düz metni ve LF satır sonlarını kullanır. Bu alıştırma için bu koşulları koruyun; zengin metin belgeleri ve diğer kodlamaları veya satır sonlarını kullanan dosyalar farklı bir işleme planı gerektirir.
Düzenlemeyi yapan komut macOS sed'dir. Sayısal adresler 1'den başlayarak satırları sayar ve i komutu adreslenen satırdan önce ekleme metnini yazar. Normalde dönüştürülmüş içeriği standart çıkışa yazar. Bu belgelenen davranışlar, kısayolun ayrı bir sonuç dosyası oluşturmasına olanak tanır. Apple'ın dağıtılan sed kılavuzu
Kullan-at metin dosyası oluşturun
Terminal'i açın ve bu tam kurulum bloğunu yapıştırın. Bu, Masaüstünüzde Satır Ekleme Demo adında bir klasör ve notes.txt adında üç satırlık bir dosya oluşturur. Bu klasör adı zaten varsa, kurulum durur; tekrar denemeden önce yeni bir klasör adı seçin.
/bin/sh <<'SH'
set -e
demo_dir="$HOME/Desktop/Line Insert Demo"
/bin/mkdir "$demo_dir"
printf '%s\n' 'Cedar' 'Maple' 'Willow' > "$demo_dir/notes.txt"
printf 'Created: %s\n' "$demo_dir/notes.txt"
SH
Klasör oluşturma, mevcut bir dizine izin veren seçeneği kasıtlı olarak atlar. Dosya yazma adımı, yeni bir klasör oluşturulduktan sonra çalışır, bu nedenle bu kurulum önceki bir örneği üzerine yazmaz. Apple'ın kabuk belgeleri, metin dosyaları oluşturmak için printf ve çıkış yeniden yönlendirmesinin kullanımını açıklar. Kabuk Girişi ve Çıkışı
Bu alıştırmayı o kullan-at klasörün içinde tutun. Finder'da Masaüstünüzü açın ve Satır Ekleme Demoyı bulun; kısayolu oluşturduktan sonra onun notes.txt dosyasını seçeceksiniz.
Doğru giriş türüyle bir Finder kısayolu oluşturun
Kısayollar'da 3. Satırdan Önce Huş Ekle adında bir kısayol oluşturun. Apple, araç çubuğundaki Ekle düğmesiyle kısayol oluşturmayı, adlandırmayı ve kenar çubuğundan eylem eklemeyi belgeliyor. Mac'te özel kısayol oluşturma
Şu şekilde yapılandırın:
- Kısayolun
Ayrıntılarını açın veHızlı Eylem Olarak Kullan'ı etkinleştirin,Finderseçiliyken. - Kısayolun giriş başlığında, kabul edilen içeriği
Dosyalarolarak değiştirin, diğer türleri kapatın. Kabuk Betiği Çalıştıreylemini ekleyin.Kabukunu/bin/sholarak,GirdiniKısayol Girdisiolarak,Girdiyi Geçiriargümanlar olarakolarak ayarlayın.- Eylemin örnek betiğini bir sonraki bölümdeki tam programla değiştirin.
Apple, Finder kısayollarını etkinlemeyi ve kabul ettikleri giriş türlerini sınırlamayı belgeliyor. Dosyalar türü birçok belge çeşidini içerir, bu ayar dosyaları kısayola sunar; metin biçimlerini doğrulamaz. Betik dar kontroller ekler. Mac'inizde çalışırken bir kısayol çalıştırın, Bir kısayol için girişi sınırlayın, Giriş türlerini anlama
Giriş zinciri önemlidir: Finder kısayola bir dosya sağlar ve kabuk eylemi yolunu bir argüman olarak geçirir, betikte $1 olarak kullanılabilir. Kabuk eylemesinden önce metin okuma eylemi koymayın: bu program mevcut dosyayı okumak ve komşu bir çıkış adı seçmek için dosya yoluna ihtiyaç duyar.
Apple, Mac için Kısayollar'ın editörde doğrudan kabuk betikleri çalıştırmayı desteklediğini onaylıyor. Betik çalıştırma devre dışıysa, Kısayollar > Ayarları seçin, Gelişmişi açın ve Betikleri Çalıştırmaya İzin Ver'i etkinleştirin. macOS için Kısayolları Tanıyın, Gelişmiş Kısayollar ayarları
Satırı ekleyin ve ayrı bir sonuç oluşturun
Bu tam programı Kabuk Betiği Çalıştır içine yapıştırın. Bir mevcut normal dosya gerektirir, 3. satırdan önce Huş ekler ve kaynak yola .eklendi.txt ekleyerek adlandırılmış komşu bir dosya yazar.
#!/bin/sh
set -eu
fail() {
printf '%s\n' "$1" >&2
exit 1
}
[ "$#" -eq 1 ] || fail 'Select exactly one example text file.'
file=$1
line=3
case "$file" in
/*) ;;
*) fail 'The input must be an absolute file path.' ;;
esac
[ -f "$file" ] || fail 'The input file does not exist or is not a regular file.'
[ ! -L "$file" ] || fail 'Select the example file itself, not a symbolic link.'
[ -r "$file" ] || fail 'The input file cannot be read.'
count=$(/usr/bin/sed -n '$=' "$file") || fail 'Could not count the input lines.'
[ -n "$count" ] || fail 'The input file is empty.'
[ "$line" -le "$count" ] || fail 'The insertion line is beyond the end of the file.'
output="${file}.inserted.txt"
if [ -e "$output" ] || [ -L "$output" ]; then
fail 'The output name already exists. Inspect or rename that result first.'
fi
if (
set -C
/usr/bin/sed "${line}i\\
Birch
" "$file" > "$output"
); then
printf 'Created edited copy: %s\n' "$output"
else
fail 'Could not finish the edited copy. Inspect any partial output before retrying.'
fi
sed ifadesi içindeki fiziksel satır kırılmaları kasıtlıdır. i sonrasındaki ters bölü çizgisini, ardından gelen yeni satırı ve ekleme metninin kendi satırında olmasını koruyun. Komut yapısı Apple'ın dağıtılan kılavuzunu takip eder; farklı bir sed uygulamasından kopyalanmış kompakt bir ekleme yazımına güvenmez. sed kılavuzu: komutlar ve ekleme metni
Çevreleyen kontroller iş akışının karar kurallarıdır. Numaralı bir satırdan önce ekleme, o satırın varlığını gerektirir. Bu program bu yüzden boş bir dosyayı ve son satırdan ötesindeki bir hedefi reddeder. Ayrıca mevcut bir çıkış adını da reddeder, kabuk noclobber modu çıkışı açarken başka bir kontrol sağlar.
Betik orijinali okur ve ayrı bir dosya yazar. Yazma başarısız olursa orijinal kullanılabilir kalır, ancak eksik bir çıktı kalabilir. Bir hatayı bitmemiş bir işlem olarak değerlendirin ve çıktıyı silmeden veya yeniden denemeden önce inceleyin. Sadece bir örneği aynı anda çalıştırın ve işlem sırasında kaynağı değiştirmeden bırakın.
Eylemin çıktısı yol içeren bir metin durumu iletisidir, bir Kısayollar dosya nesnesi değil. Düzenlenmiş dosya betiğin yeniden yönlendirmesiyle oluşturulur. Sonra Dosyayı Kaydet eklenirse, kasıtlı satır eklemesi yerine eylemin çıktısını kaydeder. Apple, Dosyayı Kaydeti bir dosya yönetimi paylaşım eylemi olarak belgeliyor; belgeleri onu numaralı satır editörü olarak tanımlamaz. Mac'te Kısayollardaki paylaşım eylemleri hakkında
Çalıştırın, sonucu inceleyin ve orijinal dosya adını koruyun
Finder'da kullan-at notes.txt dosyasına Control-tıklayın ve Hızlı Eylemler'i, ardından 3. Satırdan Önce Huş Ekle'yi seçin. Apple bu başlatma yolunu belgeliyor. Kısayol eksikse, ayrıntılarında Finder'ın etkin olduğunu ve kabul edilen girişinin Dosyalar içerdiğini kontrol edin. Mac'inizde çalışırken bir kısayol çalıştırın
Başarılı bir çalıştırma sonrasında, demo klasörü hem notes.txt hem de notes.txt.inserted.txt'i içerir. Sonuncuyu açın ve içeriğinin tam olarak şu olduğunu doğrulayın:
Sedir
Akçaağaç
Huş
Söğüt
Ayrıca Terminal'den bu tam komutla çıktıyı inceleyebilirsiniz:
/bin/cat "$HOME/Desktop/Line Insert Demo/notes.txt.inserted.txt"
Düzenlenmiş içeriği orijinal yola koymak için, örnek belgeleri kapatın ve Finder'da bu iki yeniden adlandırmayı yapın. Önce notes.original.txt'nün kullanılmadığını onaylayın; varsa başka bir kullanılmayan yedek adı seçin.
notes.txt'ü seçin,Returntuşuna basın,notes.original.txtolarak yeniden adlandırın ve tekrarReturntuşuna basın.notes.txt.inserted.txt'i seçin,Returntuşuna basın,notes.txtolarak yeniden adlandırın ve tekrarReturntuşuna basın.- Yeni adı
notes.txtolan dosyayı açın ve dört satırı doğrulayın.
Apple, bir öğeyi seçip Return tuşuna basarak yeniden adlandırdığını belgeliyor. Her iki adın da son .txt uzantısını koruyun. Finder bir ad çakışması bildirirse, durun ve kullanılmayan bir ad seçmeden önce mevcut öğeyi inceleyin. Mac'te dosyaları, klasörleri ve diskleri yeniden adlandırma
Bu, düzenlenmiş içeriğin notes.txt altında ve orijinal içeriğin notes.original.txt altında bitmesiyle sona erer. Orijinal yolu hangi dosyanın işgaliğini değiştirir; orijinal dosyanın kimliğini korumaz veya Finder etiketlerini, genişletilmiş öznitelikleri veya diğer meta verileri taşımayı vaat etmez.
Anlamını değiştirmeden eklemeyi ayarlayın
Başka bir kullan-at dosyası için, line=3'yı mevcut bir satır numarasına değiştirin ve Huş metnini basit tek bir satır metinle değiştirin. Gösterilen ekleme sözdizimini bozulmadan bırakın. Örnek metin kasıtlı olarak tırnak işareti, dolar işareti, ters tırnak veya ters bölü çizgisi içermiyor; rastgele metin ek kabuk ve sed tırnaklaması gerektirir.
Betiği düzenlemeden önce bu karar tablosunu kullanın:
| Kasıtlı değişiklik | Ne yapmalı |
|---|---|
| İlk satırdan önce metin koy | Mevcut bir örnek dosyada line=1 ayarla. |
| Başka bir mevcut satırdan önce metin koy | line'ü o pozitif satır numarasına ayarla. |
| Son satırdan sonra metin ekle | Ayrı bir ekleme işlemi kullan; bu program mevcut olmayan bir hedef satırı reddeder. |
| Boş bir dosyaya ekle | Onun ilk içeriğini ayrı oluşturun; adreslenecek mevcut satır yok. |
| Aynı kısayolu iki kez çalıştır | Önceki çıktıyı önce inceleyin. Orijinali değiştirdikten sonra, bir sonraki çalıştırma metnin bir kopyasını daha ekler. |
Bu masaüstü görevi için faydalı kontrol noktaları seçilen dosya, ekleme pozisyonu, tamamlanmış sonuç ve nihai dosya adıdır. Dört satırlı örnek doğru olduğunda, aynı dizi başlangıç metnini mevcut tutarak başka basit bir eklemeyi test etmenin net bir yolunu verir.
Kaynaklar
- sed — akış editörü — Apple Açık Kaynak Dağıtımları
- Kabuk Girişi ve Çıkışı — Apple Geliştirici Belgeleri Arşivi
- Mac'te özel kısayol oluşturma — Apple Desteği
- Mac'inizde çalışırken bir kısayol çalıştırın — Apple Desteği
- Mac'te başka bir uygulamadan çalıştırılan bir kısayol için girişi sınırlayın — Apple Desteği
- Mac'te Kısayollardaki giriş türlerini anlama — Apple Desteği
- macOS için Kısayolları Tanıyın — Apple Geliştirici
- Mac'te Kısayollardaki Gelişmiş Gizlilik ve güvenlik ayarları — Apple Desteği
- Mac'te Kısayollardaki paylaşım eylemleri hakkında — Apple Desteği
- Mac'te dosyaları, klasörleri ve diskleri yeniden adlandırma — Apple Desteği