0

sed行内の特定の文字(この場合は)までのすべてを切り捨てる必要があり]ます。

典型的なライン:

*15:36:40,038 [Some text] More text ...*
*15:57:40,038 [123] More text ....*

別のものを片付けて、何もないまですべてを交換します]。これを達成するための最も良い方法は何ですか?

提案を提供する際に、私の知識を深めるために、正規表現(またはbashcutコマンドの使用法)の説明に非常に感謝します。

どうもありがとう

4

2 に答える 2

1

解決

次のようにする必要があります。

sed 's/[^]]*\]//'

$ echo 15:36:40,038 [Some text] More text ... | sed 's/[^]]*\]//'
More text ...

説明

  • [^]]*を除くすべての記号を意味します。]
  • \]意味]
于 2012-08-08T15:42:48.710 に答える
0

最後の "]" まですべてを切り取りたい (たとえば [..] のペアがさらにある) 場合は、次のようにします。

awk -F']' '{print $NF}' file

例:

kent$  echo "15:36:40,038 [Some text] More text ... "|awk -F']' '{print $NF}'
 More text ... 


kent$  echo "15:36:40,038 [Some text] xxx yyy [some other foo] More text ... "|awk -F']' '{print $NF}'
 More text ... 

あなたのカットの例:

kent$  echo "15:36:40,038 [Some text] More text ... "|cut -d] -f2                            
 More text ... 
于 2012-08-08T16:05:03.637 に答える