FILE
:
hello
world
foo
bar
これで空の新しい行をすべて削除するにはどうすればよいFILE
ですか?
コマンドの出力:
FILE
:
hello
world
foo
bar
FILE
:
hello
world
foo
bar
これで空の新しい行をすべて削除するにはどうすればよいFILE
ですか?
コマンドの出力:
FILE
:
hello
world
foo
bar
回答:
grep . FILE
(そして、あなたが本当にのsedでそれをしたい場合は:sed -e /^$/d FILE
)
(そして、あなたが本当にawkの中でそれをしたい場合は:awk /./ FILE
)
sed -ne/./p
動作し、awk /./
短くなります(アクションは{print}
指定されていない場合です)。@ ghostdog74:grep '[^[:space:]]'
それでは。
.
は改行以外のすべての文字に一致する正規表現です。
grep . FILE
与えられた例で動作しますが、ファイルが文字セットの一部ではないバイトを持つことができる場合は必ずしもそうではありません。たとえば、GNU grep 2.20では、printf "\x80\n" | grep .
何も出力しません。
次のことを試してください。
grep -v -e '^$'
grep -v -e '^$'
常に機能しますが、の場合はそうではありませんgrep .
。たとえば、GNU grep 2.20では、printf "\x80\n" | grep .
何も出力しませんが、printf "\x80\n" | grep -v '^$'
空でない行を出力します。
with awk, just check for number of fields. no need regex
$ more file
hello
world
foo
bar
$ awk 'NF' file
hello
world
foo
bar
awk1line.txt
-そしてまた、ほとんどのawkトリックもそうです:)
空白またはスペース文字のみを含むすべての行を削除するソリューションは次のとおりです。
grep -v '^[[:space:]]*$' foo.txt
これを試して: 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
出力付き
THIS
IS
THE
FILE
EOF_MYFILE
空の行を削除することがスペースを含む行を意味する場合は、次を使用します。
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
参照:
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 ~]#