以下は、改行を含む貼り付けコマンドの弱い試みです。
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
。