[英]Remove empty lines in a text file via grep
FILE
:
hello
world
foo
bar
如何刪除此FILE
中的所有空新行?
命令的輸出:
FILE
:
hello
world
foo
bar
grep . FILE
(如果您真的想在 sed 中執行此操作,則: sed -e /^$/d FILE
)
(如果您真的想在 awk 中執行此操作,則: awk /./ FILE
)
請嘗試以下操作:
grep -v -e '^$'
with awk, just check for number of fields. no need regex
$ more file
hello
world
foo
bar
$ awk 'NF' file
hello
world
foo
bar
這是一個刪除所有空白或僅包含空格字符的行的解決方案:
grep -v '^[[:space:]]*$' foo.txt
如果刪除空行意味着行包含任何空格,請使用:
grep '\S' FILE
例如:
$ printf "line1\n\nline2\n \nline3\n\t\nline4\n" > FILE
$ cat -v FILE
line1
line2
line3
line4
$ grep '\S' FILE
line1
line2
line3
line4
$ grep . FILE
line1
line2
line3
line4
也可以看看:
試試這個: sed -i '/^[ \\t]*$/d' file-name
它將刪除所有沒有任何空行。 文件中的空格(空格或制表符),即(0 個或更多)。
注意:方括號內有一個“空格”后跟“\\t”。
修飾符-i
將強制將更新的內容寫回到文件中。 如果沒有這個標志,您可以看到屏幕上的空行被刪除,但實際文件不會受到影響。
grep '^..' my_file
例子
THIS
IS
THE
FILE
EOF_MYFILE
它只提供至少有 2 個字符的行作為輸出。
THIS
IS
THE
FILE
EOF_MYFILE
另請參閱grep '^' my_file
輸出的結果
THIS
IS
THE
FILE
EOF_MYFILE
還有grep '^.' my_file
grep '^.' my_file
輸出
THIS
IS
THE
FILE
EOF_MYFILE
嘗試前方式:
ex -s +'v/\S/d' -cwq test.txt
對於多個文件(就地編輯):
ex -s +'bufdo!v/\S/d' -cxa *.txt
不修改文件(只需在標准輸出上打印):
cat test.txt | ex -s +'v/\S/d' +%p +q! /dev/stdin
Perl 可能有點矯枉過正,但它也能正常工作。
刪除所有完全空白的行:
perl -ne 'print if /./' file
刪除所有完全空白或僅包含空格的行:
perl -ne 'print if ! /^\s*$/' file
編輯原始文件並制作 .bak 文件的變體:
perl -i.bak -ne 'print if ! /^\s*$/' file
如果您想知道 Xcode 項目中的總代碼行數,並且您對列出每個 swift 文件的計數不感興趣,那么這將為您提供答案。 它刪除根本沒有代碼的行並刪除以注釋為前綴的行//
在 Xcode 項目的根級別運行它。
find . \( -iname \*.swift \) -exec grep -v '^[[:space:]]*$' \+ | grep -v -e '//' | wc -l
如果您的代碼中有以/*
開頭並以*/
結尾的注釋塊,例如:
/*
This is an comment block
*/
那么這些將被包括在計數中。 (太難)。
最簡單的答案 -----------------------------------------
[root@node1 ~]# cat /etc/sudoers | grep -v -e ^# -e ^$
Defaults !visiblepw
Defaults always_set_home
Defaults match_group_by_gid
Defaults always_query_group_plugin
Defaults env_reset
Defaults env_keep = "COLORS DISPLAY HOSTNAME HISTSIZE KDEDIR LS_COLORS"
Defaults env_keep += "MAIL PS1 PS2 QTDIR USERNAME LANG LC_ADDRESS LC_CTYPE"
Defaults env_keep += "LC_COLLATE LC_IDENTIFICATION LC_MEASUREMENT LC_MESSAGES"
Defaults env_keep += "LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER LC_TELEPHONE"
Defaults env_keep += "LC_TIME LC_ALL LANGUAGE LINGUAS _XKB_CHARSET XAUTHORITY"
Defaults secure_path = /sbin:/bin:/usr/sbin:/usr/bin
root ALL=(ALL) ALL
%wheel ALL=(ALL) ALL
[root@node1 ~]#
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.