0

正確な文字数を含む行をテキストファイルから抽出したいと思います。colrmを試しましたが、希望する結果が得られず、英数字以外の記号が除外されました。誰もがsedを使用してこれを行うことができますか?私はsedを初めて使用しますが、まだ読んでいます...提案をありがとうございます。

4

2 に答える 2

1

これを実行するためのテスト ファイルを次に示します。このファイルを「test」と呼びます。

1
11
123
1234
12345
55555
123456
666666

grep

5文字の行のみを印刷するには、次を使用します

cat test | grep '^.\{5\}$'

結果:

12345
55555

コマンドラインでは、中かっこをエスケープする必要があります。

シード

cat test | sed '/^.\{5\}$/!d'

sed では、これは上記と同じ正規表現を使用しますが、/!dこれに一致する行を削除しないように sed に指示します。結果は上記と同じ 2 行になります。

おかしい

中括弧は awk の一部のバージョンで問題を引き起こす可能性があり、使用できない特別なフラグが必要になる場合があります。これは awk でそれを行う基本的な方法の 1 つです。

cat test |  awk '{ if (length($0) == 5 ) print $0}'
于 2013-03-08T04:37:40.727 に答える
0

grep '^.{25}$'正確に25文字の行だけが返されると思います。

説明:

^     Start at beginning of string
.{25} match exactly 25 of any character
$     Up to the end of the string`
于 2013-03-08T04:20:51.447 に答える