عام

Fg تفريغ الأنبوب والقط

Fg تفريغ الأنبوب والقط

Fg dump pipe و cat ملف جديد ببيانات جديدة.

أ:

يمكنك استخدام هذا awk:

awk '{print $ 2، $ 1}' ملف

أو

awk '{print $ 2، $ 1}' ملف | tr ' n' ' t'

سيكون الإخراج:

تفريغ القط

تفريغ القط جديد

أو للملف 2:

awk '{print $ 2، $ 1}' file2 | tr ' n' ' t'

سيكون الإخراج:

تفريغ القط

تفريغ القط جديد

بالنسبة للملف 1 و File2 ، تحتاج إلى حذف السطر الجديد:

awk '{print $ 2، $ 1}' ملف | tr ' n' ' t' | grep -vf file2.new | grep -vf file2.new.new | awk '{print $ 2، $ 1}' | grep -vf file2.new | awk '{print $ 2، $ 1}' | grep -vf file2.new | tr ' n' ' t' | awk "{print $ 2، $ 1}"

أو:

awk '{print $ 2، $ 1}' ملف | grep -vf file2.new | awk '{print $ 2، $ 1}' | grep -vf file2.new | tr ' n' ' t' | awk "{print $ 2، $ 1}"

أ:

قد يعمل هذا من أجلك (GNU sed):

sed -e ': a' -e '/ file /! {/ file /! ba، N،}، / file2 /! {N، ba}،' -e's / $ / t / '& lt ، ملف

كيف يعمل هذا؟

يبدأ sed في: وضع بدون تحديد نمط.

: أ # بدء نمط.

/ملف/! # إذا كنا في ملف احتواء سطر ، فلا تفعل شيئًا.

# آخر ، ابدأ نمطًا آخر.

/ملف/! # إذا كنا في سطر احتواء file2 ، فلا تفعل شيئًا.

# آخر ، ابدأ نمطًا آخر.

{# احفظ هذا النمط في مساحة النمط ،

N ، # الانتقال إلى سطر جديد ،

# ثم ابدأ هذا النمط.

} # أوقف هذا النمط وابدأ بآخر.

/ file2 /! # إذا كنا في سطر احتواء file2 ، فلا تفعل شيئًا.

# آخر ، ابدأ نمطًا آخر.

N ، # الانتقال إلى سطر جديد ،

# ثم ابدأ هذا النمط.

ba ، # ابدأ نهاية نمط الخط (أي

# "بداية السطر ، لكن السطر فارغ").

سيؤدي ذلك إلى طباعة كل سطر من الملف الأول ، متبوعًا بالملف الثاني. ثم يقوم بحذف كل سطر فارغ باستثناء تلك التي تحدث في نهاية الملف الثاني ، والتي تتم طباعتها على سطر خاص بها.

الشيء الأساسي الذي يجب فهمه هنا هو أن جميع القواعد يتم تشغيلها من البداية إلى نهاية كل سطر من ملف الإدخال ، ولكن السطر الأول فقط من الإخراج يتأثر دائمًا بهذه القواعد. ما تبقى من الناتج هو مجرد أسطر من الملف التالي.

الشيء الوحيد الذي يمكن أن يؤثر على الإخراج هو ما إذا كان السطر يحتوي على ملف أو ملف 2 ، وما إذا كان السطر ينتهي بـ t أم لا.

لاحظ أن استخدام N هنا يعني أنه لا يوجد سطر فارغ بعد آخر سطر إدخال في الملف ، وسيتم طباعة السطر الفارغ بعد السطر الأخير من الإخراج على السطر الخاص به.

لقد كتبتها في sed بهذه الطريقة لأنها أبسط ، لكنك قد تفضل كتابة حل awk الخاص بك. أوصي باستخدام محلول sed كنقطة بداية ، ثم تعديله لفعل ما تريده أن يفعله.

أ:

يدعم GNU sed الخيار nq لعدم طباعة السطر:

sed -n '/ file /، / file2 / {p، q}' file.txt

يدعم هذا الخيار أيضًا العديد من الأدوات الأخرى ، مثل awk و fgrep و grep وما إلى ذلك.


شاهد الفيديو: 5مدنيةهيدروليك أنابيب نقل الرواسب في الأنابيب دصيام (كانون الثاني 2022).