スペースで区切られた文字列(2-5)を含む大きなテキストファイルがあります。文字列には「 '」または「-」を含めることができます。 2つ目のスペースをパイプに置き換えたいと思います。
行くための最良の方法は何ですか?
Sedを使用して私はこれを考えていました:
sed -r 's/(^[a-z'-]+ [a-z'-]+\b) /\1|/' filename.txt
他の/より良い/よりシンプルなアイデア?
代替コマンドの最後に番号を追加できます。たとえば、次の例では、2番目に出現するold
を、new
の各行の文字列file
に置き換えます。
sed 's/old/new/2' file
したがって、提案されたソリューションの代わりに、以下を使用できます。
sed 's/ /|/2'
詳細については、例を参照してください。 このsedチュートリアル 。
バージョンを試しましたか?うまくいきましたか?基本的にはいい考えだと思うので。ただし、少し異なる方法で行います。
sed -re 's/^([^ ]+ +[^ ]+) /\1|/'
これは、スペースではないWord内のすべての文字を受け入れ、最初の2つの単語の間に複数のスペースを受け入れます。