私は最初の空白の前にすべての文字を一致させるためにgrepを使いたいと思います。grepを使って最初の空白の前のすべての文字をマッチさせる方法は?
grep "^[^\s]*" filename.txt
が機能しませんでした。代わりに、最初のs
より前のすべての文字が一致します。 grepには\s
がありますか?
私は最初の空白の前にすべての文字を一致させるためにgrepを使いたいと思います。grepを使って最初の空白の前のすべての文字をマッチさせる方法は?
grep "^[^\s]*" filename.txt
が機能しませんでした。代わりに、最初のs
より前のすべての文字が一致します。 grepには\s
がありますか?
また、出力にのみマッチした部分を表示するにはperlの正規表現フラグP
とo
フラグを使用して試すことができます。
grep -oP "^\S+" filename.txt
POSIX文字クラスで:\s
がどこにあるかについては
grep -o '^[^[:blank:]]*' filename.txt
を利用可能:
\s
grep -E
と呼ばれる、拡張正規表現は、[[:space:]]
\s
をサポートしていますまた\s
をサポートしていないようです、フィールド区切り文字を明示的に1つのスペースに設定してawkを使用すると、空白は無視されません。
awk -F ' ' '{ print $1 }'