テキストファイルでaで始まるすべての行を見つけて置き換えようとしています。シングルスペースだから誰のキャラクターも。
最後にgrepで動作する正規表現を得ました。grep -E '^ .*$*' Contacts.vcf >> t.txt
その後、sedで使用するときはそうではありません。sed 's/^ .*$//g' Contacts.vcf > tt.txt
(最初のスペースに関係なく)すべての行を取得します。\s{1}
全部入れてみましたが、()
実行できませんね。
初めてWindowsでPowerShellを使用しようとしたときも、同じ問題が発生しました。クロスプラットフォーム正規表現の詳細(?)がありません。
正規表現で単一のスペースで始まる行のみを検索するにはどうすればよいですか?
ベストアンサー1
grep
「空白で始まり、後ろにランダムな文字が続きます」を実装することで単純化できます。
grep '^ .'
「空間で始める」としたら、簡単です。
grep '^ '
今sed
多様性すべてを入力して表示します。sed
もう少し同様に動作するには、フラグとコマンドが grep
必要です。これは、デフォルトでは出力を表示しないことを意味し、「この行を印刷します」を意味します。-n
p
-n
p
例えば
sed -n '/^ /p'
同様に、スペースで始まるすべての行を表示します。
sed -n '/^ ./p'
スペースで始まり、その後に他の文字が続くすべての行を表示します。
編集する
他の意見によると、あなたの目標はスペースで始まる行を削除するようですsed
。
この場合
sed -i '/^ /d'
デフォルトでは、「スペースで始まる行を検索して削除」します。
例えば
$ cat x
hello
there
everyone
$ sed -i '/^ /d' x
$ cat x
hello
everyone