Soru az ya da çok her şeyi söylüyor. /^$/d
Tüm boş satırları kaldıracağının farkındayım , ancak 'iki veya daha fazla boş satırı tek bir boş satırla değiştir' diyemiyorum
Herhangi bir fikir?
Soru az ya da çok her şeyi söylüyor. /^$/d
Tüm boş satırları kaldıracağının farkındayım , ancak 'iki veya daha fazla boş satırı tek bir boş satırla değiştir' diyemiyorum
Herhangi bir fikir?
Yanıtlar:
Başka bir kullanım için vim veya sed kullanmıyorsanız, kedi aslında birden fazla boş çizgiyi daraltmak için kolay bir yerleşik yol kullanır, sadece kullanın cat -s
.
Zaten vim içindeyseniz ve orada kalmak istiyorsanız, bunu dahili arama ile yapabilir ve aşağıdakileri düzenleyerek değiştirebilirsiniz: :%s!\n\n\n\+!^M^M!g
(^ M, yeni bir hattın görsel temsilidir, Ctrl+ tuşlarına basarak girebilirsiniz vEnter) veya kendinizi sadece kediye ateşinin tarafından yazarak: :%!cat -s
.
:%!cat -s
. Her gün GNnew bir şeyler öğrenin!
%s!\n\n\n\+!\r\r!g
\n
Arama düzeninde yeni bir satır belirtmek için kullanın . Kullanım Ctrl+ MYeni metnin ya da bir geribaşvuru içinde. Bakınız :help pattern
ve :help sub-replace-special
(bağlantılı :help :s
).
%s/\(\n\n\)\n\+/\1/
\n
çalışmaz.
Vim'de ise, sadece şunu yapın:
:%!cat -s
man
.
Perl kullanarak:
perl -00 -pe ''
-00
komut satırı seçeneği paragraf slurp modunu açar, yani Perl, metin paragrafını satır satır yerine paragraftan okur.
Sed (GNU sed) ile 4.2.2:
sed -r '
/^\s*$/ {
# blank line
:NEXT
N # append next line to pattern space - if none, autoprint PS and exit
s/^\s*$\n^\s*$//g;t NEXT # if 2 blank lines, clear PS and loop to NEXT
}
# else, autoprint PS and next/exit
' < $MYFILE
Bunun aptalca bir kod olduğunu biliyorum ama bu konuyu 10 dakikadan daha az bir sürede çözmek istedim ve çalıştı
for file in /directory/*
do
originalname=$file
us='_'
tempname=$file$us
echo $originalname
mv $originalname $tempname
uniq $tempname $originalname
rm $tempname
done
uniq
bitişik eşit çizgileri kaldırır. OP'nin istediği bu değil.
-s
kedi seçeneğini bilmiyordum - sadece tarihi bir not, POSIX'de değil, ancak BSD ve GNU kedisinde mevcut gibi görünüyor.