1

異なる文字列で繰り返される値を持ち、2 列ごとに新しい行に配置する必要があります。

データ:

10.1.1.192 wef.xml 10.1.1.156 fwe.xml 10.1.1.159 few.xml 10.1.1.159 vz.xml 10.1.1.159 vsd.xml 10.1.1.209 vsd.xml 10.1.1.216 vsd.xml 10.1.1.195 vsd.xml 10.1.1.195 vsd.xml 10.1.1.194 vsvds.xml 10.1.1.192 vsdh.xml 10.1.1.198 here.xml 10.1.1.200 herrrr.xml

どれを完了するかを出力します。

10.1.1.192 wef.xml
10.1.1.156 fwe.xml
10.1.1.159 few.xml
10.1.1.159 vz.xml
10.1.1.209 vsd.xml
and etc...
4

3 に答える 3

7
xargs -n2

テスト:

kent$  xargs -n2 <<< "10.1.1.192 wef.xml 10.1.1.156 fwe.xml 10.1.1.159 few.xml 10.1.1.159 vz.xml 10.1.1.159 vsd.xml 10.1.1.209 vsd.xml 10.1.1.216 vsd.xml 10.1.1.195 vsd.xml 10.1.1.195 vsd.xml 10.1.1.194 vsvds.xml 10.1.1.192 vsdh.xml 10.1.1.198 here.xml 10.1.1.200 herrrr.xml"     
10.1.1.192 wef.xml
10.1.1.156 fwe.xml
10.1.1.159 few.xml
10.1.1.159 vz.xml
10.1.1.159 vsd.xml
10.1.1.209 vsd.xml
10.1.1.216 vsd.xml
10.1.1.195 vsd.xml
10.1.1.195 vsd.xml
10.1.1.194 vsvds.xml
10.1.1.192 vsdh.xml
10.1.1.198 here.xml
10.1.1.200 herrrr.xml
于 2013-07-25T10:11:56.993 に答える
2

バッシュ ソリューション:

read -a ar < input
for ((i=0 ; i<${#ar[@]} ; i+=2)) ; do
    echo ${ar[i]} ${ar[i+1]}
done

行全体を配列に読み込み、ペアをループで出力するだけです。

セッド ソリューション:

sed -e 's/\([^ ]\+ [^ ]\+\) /\1\n/g' < input

前にスペースが 1 つ残っている場合は、スペースを改行で置き換えます。

Perl ワンライナー:

perl -ne 'print $_, ($ff = ! $ff) ? " " : "\n" for split' < input

$ff をフリップフロップとして使用します。

于 2013-07-25T10:10:15.077 に答える