貼り付けコマンドに改行文字を追加してみてください。

貼り付けコマンドに改行文字を追加してみてください。

以下は、改行を含む貼り付けコマンドの弱い試みです。

    paste -d -s tmp1 tmp2 \n tmp3 \n tmp4 tmp5 tmp6 > tmp7

デフォルトでは、各tmpにはいくつかの行があり、出力を読みたいです。

First(tmp1) Last(tmp2)
Address(tmp3)
City(tmp4) State(tmp5) Zip(tmp6)

貼り付けコマンドに改行文字を使用すると、基本から外れますか?

完成した製品は次のとおりです。助けてくれてありがとう!

    cp phbook phbookh2p5

    sed 's/\t/,/g' phbookh2p5 > tmp
    sort -k2 -t ',' -d tmp > tmp0
    cut -d',' -f1,2 tmp0 > tmp1
    cut -d',' -f3 tmp0 > tmp2
    cut -d',' -f4,5,6 tmp0 > tmp3
    echo "" > tmp4

    paste -d '\n' tmp1 tmp2 tmp3 tmp4 > tmp7

    sed 's/\t/ /g' tmp7 > phbookh2p5

    cat phbookh2p5

    rm tmp*; rm phbookh2p5

ベストアンサー1

2つの追加の一時ファイルを使用してこの回避策を試してください。

paste tmp1 tmp2 > tmp12
paste tmp4 tmp5 tmp6 > tmp456
paste -d "\n" tmp12 tmp3 tmp456 > tmp7

-dこのソリューションは、オプションが区切り文字を選択するという前提に基づいています。グローバルすべての入力ファイルに対して空です。または改行文字。これは、後のイベントが-d前のイベントを上書きするため、ある程度真実です。ただし、@DigitalTraumaが指摘したように、順次使用される複数の区切り文字を提供できます。したがって、@DigitalTraumaのソリューションは、追加の一時ファイルを完全に防ぐため、私のソリューションよりもエレガントです。

私のソリューションのニッチアプリケーションは、1つ以上の区切り文字がある状況です。それぞれ1つ以上の文字使用する必要があります。このオプションだけでは不可能です-d

おすすめ記事