Hp-ux प्रणाली में हर 12 लाइनों के बाद दो फाइलों को क्लब करना


1

मेरे पास दो बड़ी फाइलें हैं। एक फ़ाइल में 0-12 घंटे का डेटा होता है और दूसरे में 13-23 घंटे का डेटा होता है। मैं इसे प्रत्येक संयोजन के लिए 23-0 घंटे के साथ एक फ़ाइल में मर्ज करना चाहता हूं।

ex :
file1

abcdefg00
abcdefg01
abcdefg02
---------
---------
abcdefg12
pqrstuv00
---------
---------

file2 :

abcdefg13
abcdefg14
---------
---------
abcdefg23
pqrstuv13
---------
---------

क्या कोई रास्ता है कि मैं इस तरह विलय कर सकता हूं आउटपुट नीचे की तरह होना चाहिए

>     abcdefg00
>     abcdefg01
>     abcdefg02
>     ---------
>     ---------
>     abcdefg12
>     abcdefg13
>     abcdefg14
>     ---------
>     ---------
>     abcdefg23
>     pqrstuv00
>     ---------
>     ---------
>     pqrstuv13
>     ---------
>     ---------
>     pqrstuv23

श्रद्धा में धन्यवाद


हाय किरन, सुपरयूज़र पर आपका स्वागत है। अपने आप को पंजीकृत करें और जांचें कि उत्तर आपके मामले में काम करते हैं या नहीं। यदि कुछ टिप्पणी नहीं जोड़ें या अपनी पोस्ट को संपादित करें।
हस्त्तूर

जवाबों:


0

आप दो फ़ाइलों, एक के बाद एक संलग्न करने के लिए कह रहे हैं, लेकिन यह भी लाइनों के क्रम को उल्टा करने के लिए हैं, तो आप या तो उपयोग कर सकते हैं tail -rया tacके रूप में

cat file1 file2 | tail -r

या

cat file1 file2 | tac

HP-UX पर -r विकल्प उपलब्ध नहीं हो सकता है tailtacयदि आपको इसे जोड़ने की आवश्यकता है, तो कमांड कोरुटिल का हिस्सा है।


0

आप उपयोग करने का प्रयास कर सकते हैं sort

sort -n -k1 f1.txt f2.txt   > newfile

से man sortआपको लगता है कि पढ़ सकते हैंsort

मानक उत्पादन के लिए सभी FILE (ओं) के सॉर्ट किए गए लेखन।

आपको सॉर्ट करने के लिए ( -k1) या नंबरिंग सॉर्ट का चयन करने के लिए उपयोग किए जाने वाले कॉलम का चयन करना पड़ सकता है -n

यदि आपकी फ़ाइलों को कड़ाई से आदेश नहीं दिया गया है, तो आपको एक ऐसी स्क्रिप्ट करनी चाहिए जो पहली और दूसरी फ़ाइल से वैकल्पिक रूप से 12 पंक्तियों को दो फ़ाइल विवरणों के साथ पढ़े [ 1 ], [ 2 ]

यह इस एक के समान कुछ में परिणाम कर सकते हैं

#!/bin/bash
while true
do
  for ((i=1;i<=12;i++)); do
    read -r f1 <&3 && echo "$f1" || exit 1
  done
  for ((i=1;i<=12;i++)); do
    read -r f2 <&4 && echo "$f2" || exit 2
  done
done 3<file1 4<file2

जब तक यह पढ़ने में सक्षम होता है तब तक यह 1 या 2 चक्र से भिन्न त्रुटि मान के साथ बाहर निकलता है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.