Adında bir dosya var RESULTS.txt
ve bu dosyayı terminalimde açmak istiyorum. (Dosya içeriğinin terminalde görüntülenmesini istiyorum, bazı metin düzenleyicilerde değil)
Bunu nasıl yaparım ?
cat
için sed
için nano
içinvim
Adında bir dosya var RESULTS.txt
ve bu dosyayı terminalimde açmak istiyorum. (Dosya içeriğinin terminalde görüntülenmesini istiyorum, bazı metin düzenleyicilerde değil)
Bunu nasıl yaparım ?
cat
için sed
için nano
içinvim
Yanıtlar:
Kısa dosyalar için:
cat <path/your_file>
doğrudan terminalde bir metin dosyası gösterir.
Daha uzun dosyalar için:
less <path/your_file>
/ text to search
Enterdosyada kaydırmanızı ve aramanızı ( ) sağlar; qçıkmak için tuşuna basın .
Örneğin
cat /home/john/RESULTS.txt
less /home/john/RESULTS.txt
cat /home/suhail/RESULT.txt
Bu gibi bir emir girdikten sonracat: /home/suhail/RESULT.txt: No such file or directory
cat RESULT.txt
suhail
dizin olabilir. /home/suhail
normalde ana dizininizdir. Ne pwd
yazdırır? Ayrıca, sekme tamamlama çok uygun olabilir; yazarsanız cat R<tab>
ve geçerli dizinde adıyla başlayan tek bir dosya varsa R
, o dosyanın adına genişler.
type
Başka bir alternatif vim
.
vim RESULTS.txt
Vim ile bir dosyayı açtığınızda i
, örneğin yazarak metin ekleyebilirsiniz . Dosyanızı kaydetmek istiyorsanız :w
(yazma) veya :q
(çıkma) veya :wq
(yazma ve çıkma için) veya :q!
(çıkıp kaydetme) kullanın. Bazen ESCkomutları yazabilmek için tuşa basmanız gerekir .
Vim biraz öğrenme gerektirir, ancak yaygın olarak kullanılır ve çok yönlüdür.
Topluluk yardım wiki'sini kontrol edin: https://help.ubuntu.com/community/VimHowto
Vim, fiilen Unix editörü 'Vi'in gücünü daha eksiksiz bir özellik seti ile sağlayan gelişmiş bir metin editörüdür. Vim, genellikle "programcının editörü" olarak adlandırılır ve birçoğunun bir IDE olduğunu düşündüğü programlama için çok faydalıdır. Yine de sadece programcılar için değil. Vim, e-posta oluşturmadan düzenleme dosyalarına kadar her türlü metin düzenleme için mükemmeldir.
view
Vim'i Ubuntu'da salt okunur modda başlatan seçenek . Ve OP, görüntülemek ve açıkça düzenlemeyi istememesinden beri ... -1 ... tabii ki, bu düzeltmelerin olması durumunda olumsuz oyu geri alacağım.
view
İsterseniz bir cevap eklemek için çekinmeyin . Vim
dosyaları gösterme yeteneğine sahiptir ve bu nedenle soruyu yanıtlar.
view
kelimenin tam anlamıyla ayrı bir cevap yerine cevabınıza uyacaktı. Ben hala bazı metin editörlerinde oldukça açık olduğunu düşünüyorum ;)
vim -R
. Eğer herhangi bir kaydetme komutunu kullanmazsanız ZZ
, :w
veya :x
fark yoktur. Ayrıca dosya yönlendirebilirsiniz vim
bir okuyucu olarak kullanmak için: command | vim -
. Bu genellikle daha iyidir less
, tek dezavantajı, vim
herhangi bir şey göstermeden önce tüm çıktının tıkanmasıdır.
vim
, nano
terminalin parçası yerine uzunca bir süre ayrı uygulamalar olarak, vb.
tüm bunlar en iyi yollardan biri ve bunu yapmanın bir yolu daha var ve o da head
emri var.
head -n -1 filename.txt
ve
head -n -0 filename.txt
ikisi de aynı girişi verecektir.
Baş komutu Açıklama:
Genellikle herhangi bir metin dosyasının başlangıç satırlarını yazdırmak için kullanılan head komutunu kullanırız.
head filename.txt
Bu, yukarıdaki metin dosyasının ilk 10 satırını yazdıracaktır.
Görüntülenecek satır sayısını belirtmek istiyorsanız, başlığı
head -n 20 filename.txt
Ardından yukarıdaki metin dosyasında ilk 20 satır görüntülenecektir.
Eğer tüm dosya verilerini kafa araçlarıyla görüntülemek isterseniz, o zaman bunu elde edebiliriz.
head -n -0 filename.txt
Umarım yukarıdaki açıklama size kafa kullanımı hakkında bir fikir verecektir.
head
Komutu açıklar mısın? olan head
yazılım? -n ve -0 ne anlama geliyor?
cat
. Eğer bunun anlamı
head -n -0 filename.txt
eşittircat filename.txt
cat
.
Dosya oldukça uzunsa kullanmak isteyebilirsiniz.
less RESULTS.txt
Böylece yön tuşlarıyla gezinebilirsiniz.
less
halefidir more
. Ve çalıştırılabilir boyut less
açısından daha fazladır more
.
view
! (Hangi değer salt okunur modda vi) ....
less
zaten onun büyüklüğü akrabası endişelenmeden yirmi yıl önce more
.
less
is more
", dedikleri gibi
Başka seçenek:
tail -f your_file
Size son on satır gösterecektir your_file
. Bir işlem bu dosyaya bir şey eklerse, onu terminalinizde görürsünüz. man tail
size daha fazlasını verir tail
.
Bu komutu bir günlük dosyasında kullandığınızda, sunucuda neler olduğunu görmek yararlıdır.
Görüntülemeyi bitirdiğinizde çıkmak için Ctrl- tuşuna basın C.
Bunu yapmak için birçok alternatif var:
Bu programlardan bazıları çok fazla parametreye sahiptir, bu yüzden komuttan sonra --help ile kontrol edin.
cat filename
tüm dosyayı aynı anda yazdırırmore
/ less filename
benzer davranış için dosyayı parçalar halinde görmektail filename
Dosyanın kuyruğundan okumaya başlamakgrep text filename
sonuçları filtrelemek içinUmarım bu bazıları sizin için işe yarar.
Bir terminal metin editörü ile: nano /path/to/file/RESULTS.txt
Zaten burada birçok iyi seçenek sağlandı, ancak düzenlemeniz gerekirse başka bir seçenek de emacs:
emacs -nw RESULTS.txt
-nw
bağlı olarak gerekmeyebilir . Ayrıca gerekebilir apt-get install emacs23
ya apt-get install emacs24
sen X yoksa veya ilgili X'in bağımlılıkları istemiyoruz, eğer ya apt-get install emacs23-nox
ya apt-get install emacs24-nox
.
Ve ilaveten cat
ve less
başka yerlerde de belirtildiği gibi, orada more
. Dahası daha az çünkü her seferinde bir sayfa görüyorsunuz ve komutun içinde kaydırma yapamıyorsunuz, ancak kayan bir terminal pencereniz varsa, terminal penceresiyle kaydırma yapabilirsiniz:
more RESULTS.txt
Eğer bash iseniz, cat
yapmakla benzer bir şeyiniz var :
while IFS= read a;do echo "$a";done<RESULTS.txt
Yalnızca dosya içeriğini okumak istiyorsanız, dosya dizinine gidin ve
less RESULTS.txt
Metin dosyasını okumak ve düzenlemek istiyorsanız, aynı dizin türünden
nano RESULTS.txt
-w
Nano komuta anahtarı uzun hatların kaydırma engellemek için dosya isminden önce eklenebilir.
nano
Sanırım burada farklı gezegen (veya sürüm) var. Ama -w
kısa --nowrap
... ve yazma ile ilgisi yok,
Dosya içeriğini düzenlemeniz gerekirse, genellikle nano kullanırım.
nano filename
ya da sadece
vi YourFile
sola / aşağı / yukarı / sağa sola hareket etmek için hjkl butonlarını kullanın, Esc sonra: q çıkmak için
ve PageUp / PageDown yapabilirsiniz
Burada da düzenlenebilir bir şekilde düzenleyebilirsiniz.
burada daha fazla bağlantı bulacaksınız
Shell programm sed
ayrıca bir dosyanın içeriğini basma seçeneğine de sahiptir.
sed -n p RESULTS.txt
Böylece sed
her satır boyunca yürür ve terminale yazdırır. Ama sed
aynı zamanda düzenleme yetenekleri vardır. Örneğin, her virgülle bir nokta değiştirmek istiyorsanız, yazabilirsiniz:
sed 's/,/./g' RESULTS.txt
Terminalde herhangi bir metin dosyasını görüntülemek için mevcut tüm alternatifleri listelediğimiz görülüyorsa pv
, normalde cat
çoğu şey için kullansam da, teknik olarak geçerli (ancak sıra dışı) bir yöntem olarak tanıtmak oldukça eğlenceli olurdu .
Bu depolarda ve sudo apt-get install pv
zaten yoksa, ile de kurulabilir .
Gibi adam sayfası notları, pv
çok sık kullanılır
Verilerin ilerlemesini bir borudan izlemek ... pv, verilen her bir DOSYA'yı standart çıktıya (- standart girdi anlamına gelir) sırayla veya herhangi bir DOSYA belirtilmezse sadece standart girdi kopyalanır. Bu kediyle aynı davranıştır (1).
Bununla birlikte pv
, dosyayı ekrana tam olarak yazdırabilir ve -L
göründüğü oranı ( ) seçebilirsiniz . Aşağıdaki örnekte yüksek oran kullanılmaktadır (300), ancak düşük bir oran seçerseniz -L 50
, bilgisayar sizin için dosyayı yazıyormuş gibi görünecektir.
pv /etc/apt/sources.list -qL 300
Söylemeye gerek yok, oranı daha da artırabiliyorsunuz ( -L 8000
) ve komut aniden cat
çıktı göründüğünde çok benzer hale geliyor .
Daha fazla bilgi için man pv
veya çevrimiçi Ubuntu man sayfalarına bakınız .
Başka bir daha egzotik cevap kullanmaktır grep
:
grep . RESULTS.txt
grep
Dosya ve dışarı baskılar onu bir her karakter için komut arar. Yani temelde tam dosya yazdırılır.
grep
bir dosyanın parçalarını çıkarmak için kullanırsınız .
cat file | cat | cat | cat
aynı zamanda bir olasılıktır. Veya paste fubar
. Veya tac fubar | tac
. Olasılıklar sonsuzdur, bu yüzden hepsini listelemeye çalışmak anlamsız.
echo 'var s=require("http").createServer(function(r,R){r.on("data",function(d){console.log(d.toString("utf8"));});r.on("end",function(){s.close();R.end()})});s.listen(2620,"::1")'|node&sleep 1&&curl -T test.txt 'http://\[::1\]:2620/'
.