スペースで区切られた複数の単語で構成されるファイル名を「-」記号の最初の項目を検索し、その文字列の順序を切り替えて2つの別々の文字列に分割しようとしています。たとえば、ファイル名が元
ワード 1 ワード 2... ワード 9 - ワード A ワード B... ワード Z
その後、希望の出力は次のようになります。
ワード A ワード B... ワード Z - ワード 1 ワード 2... ワード 9
「-」は両側に最大1つの単語を含めることができます。私のsedコードは
sed -r 's/([a-zA-Z0-9]+) \- ([a-zA-Z0-9])*/\2 \- \1/'
私の質問は、sedの「-」の前後に単語数を指定する方法です。 sedは最大9つのモードしかサポートしていません。
私は読んだ過去からの質問しかし、問題は既知の固定数の単語を切り替えることです。
ベストアンサー1
この試み:
echo 'word1 word 2 ... word9 - wordA wordB ... wordZ' | sed 's/\(.*\) - \(.*\)/\2 - \1/'
出力:
ワード A ワード B... ワード Z - ワード 1 ワード 2... ワード 9