2

「||||」であるフィールドセパレーターを含むテキストを使用しています。

substring1||||substring2

部分文字列には空白が含まれる場合もあります。これらの文字列を区切り文字「||||」だけで分割したいのですが、適切な方法が見つかりませんでした。次のコマンドを試しました:

echo "substring1||||substring2" | awk '{split($0,a,"||||"); a[2],a[1]}'

実際、このコマンドは「|」が 1 つしかない場合に機能します。セパレータとして。しかし、私の問題は、パイプ文字が複数あることです。

私も試しました

a=($(echo "substring1||||substring2" | sed -e "s/||||/\n/g")) 

部分文字列に空白が含まれていない場合は正常に機能します。ただし、部分文字列には空白が含まれる可能性があるため、スペースでも分割されますが、これは望ましくありません。

何か案が?

4

4 に答える 4

-3

sed と tr を使用してみてください...役立つかどうかを確認してください!!

入力.txt

sub string 1||||sub string 2
            or
 substring1||||substring2

コード

  sed 's/||*/%~%/g' Input.txt| tr "%~%" '\n' | sed '/^$/d'

ノート

「%~%」のような任意の式を使用してください....テキストファイルに表示されない任意の式(私が使用したようなもの)...およびsedおよびtrを使用してそれを置き換えます...

于 2013-06-09T10:28:14.053 に答える