数字なしですべての行を印刷するには、sedを使用してください。

数字なしですべての行を印刷するには、sedを使用してください。

sedで正規表現を使用して、数値以外の文字を含むすべての行を印刷する必要があります。入力はcsvで、一部の行にはテキストと数字が含まれています。数字がないものだけを印刷したいです。私が試したことは次のとおりです。

sed -E -n '/^\D*$/p' direcciones.csv

なぜ何も見つかりませんか?

答え1

@steeldriverはあなたの試みがうまくいかない理由をすでに説明しています(sedそれでもGNUではうまくいくはずです)。

しかし、簡単に保つとどうですか?数字以外の文字のみを含むすべての行を印刷することは、数字を含むすべての行を削除するのと同じです。

sed '/[0-9]/d' direcciones.csv

書き込みも読みやすくなりますか?

答え2

sed実装はPCRE拡張をサポートしない可能性があります(拡張正規表現スイッチを\D使用しても)。-E以下が利用可能でなければなりません[^[:digit:]]

$ printf 'foo,bar,baz\nfoo,123,baz\n' | sed -n '/^[^[:digit:]]*$/p'
foo,bar,baz

答え3

使用が制限されていますかsed、それとも使用できますかgrep

grep -v '[0-9]' direcciones.csv

関連情報