اگر فایلی
داشته باشید
که در هر سطر
آن یک مقدار ذخیره
شده باشد، با
حلقهی for زیر
میتوان هر
سطر را خواند،
اما این مشکل
وجود دارد که
متغیر line یک
کاراکتر نیولاین
در انتها خواهد
داشت که برای
ما نامطلوب
است.
1: #! /bin/bash
2:
3: for line in `cat input.txt`; do
4: echo "<tag>${line}</tag>"
5: done
|
برای رفع این
مشکل میتوان یا
از هر متغیر نیولاین
را حذف کرد:
Removing new-line from variable |
1: #! /bin/bash
2:
3: for line in `cat input.txt`; do
4: line=`echo $line | awk '{ str1=str1 $0 }END{ print str1 }'`
5: echo "<tag>${line}</tag>"
6: done
|
یا از فایل اولیه یک فایل جدید ساخت که در
آن به جای نیولاین
از فاصله
استفاده شده
باشد. یعنی کل
فایل اولیه تبدیل
شود به یک
فایل یک خطی
که در آن مقادیر
تنها با
کاراکتر
فاصله از هم
جدا شده
باشند:
Replacing new-line with space in a new file |
1: #! /bin/bash
2:
3: for line in `cat input.txt | awk '{ str1=str1 $0 " " }END{ print str1 }'`; do
4: echo "<tag>${line}</tag>"
5: done
|
به تفاوت در پارامترهای
awk در دو روش
فوق توجه
کنید.
0 نظر:
ارسال یک نظر
جهت نمایش صحیح آدرس سایتتان، حتما قبل از آدرس //:http را درج کنید.