仮定:
これが私が表示する唯一のテキストです。残りのテキストには[表示されていません]より多くのデータがありますが、これは問題です。テキストは少しきれいで、スペース、タブ、Unicodeでいっぱいで、きれいではなく、次のようにする必要があります。したがって、この正確なテキストをコピーして貼り付けるのはうまくいきません[マークアップ形式]:
私は持っています一部次のテキスト:
*** *
more text with spaces and tabs
*****
1
Something here and else, 2000 edf, 60 pop
Usd324.32 2 Usd534.22
2
21st New tetx that will like to select with pattern, 334 pop
Usd162.14
*** *
more text with spaces and tabs, unicode
*****
私は次の明示的なテキストを取得しようとしています。
1 Something here and else, 2000 edf, 60 pop Usd324.32
newline
そして、whitespace
次のコマンドは次のもののみを取得します1
。
grep -E '1\s.+'
また、私は新しい接続を使用してこれを実行しようとしました。
grep -E '1\s|[A-Z].+'
しかし、うまくいきません。grep
テキストの他の部分から同様のパターンを選択し始めました。
awk '{$1=$1}1' #done already
tr -s "\t\r\n\v" #done already
tr -d "\t\b\r" #done already
どうやってキャッチできますか?
- 1つをつかむ
newline
- その後、2行目全体をつかむ1
newline
- 番号をつかんで
$Usd324.34
削除してくださいUsd
ベストアンサー1
pcregrep
Ultilineモードとキャプチャグループの内容を出力する機能がありますM
。o
$ pcregrep -Mo1 -o2 -o3 --om-separator ' ' '^(1)\n(.*)\n\h*Usd(\H+)' file
1 Something here and else, 2000 edf, 60 pop 324.32