刪除文本、文件中的空行
創(chuàng)新互聯(lián)建站是專業(yè)的縉云網(wǎng)站建設(shè)公司,縉云接單;提供網(wǎng)站制作、網(wǎng)站建設(shè),網(wǎng)頁設(shè)計,網(wǎng)站設(shè)計,建網(wǎng)站,PHP網(wǎng)站建設(shè)等專業(yè)做網(wǎng)站服務(wù);采用PHP框架,可快速的進行縉云網(wǎng)站開發(fā)網(wǎng)頁制作和功能擴展;專業(yè)做搜索引擎喜愛的網(wǎng)站,專業(yè)的做網(wǎng)站團隊,希望更多企業(yè)前來合作!實驗描述:
可同時處理一個或多個文件;
要求在用?sed?刪除空行之前先核實文件是否存在;
sed的輸出被導(dǎo)入一個文件名中含有$?$的臨時文件,最后將臨時文件移回原來的文件中;
使用shift命令取得所有的文件名,用while循環(huán)逐個處理所有的文件,直至處理完為止;
可以使用del.lines?--help獲得一個簡短的幫助信息。
實驗過程:
1:編寫一個腳本,名為del.lines:
截圖如下:
內(nèi)容如下:
#!/bin/bash
#?Script?takes?filename(s)?and?deletes?all?blank?lines.
TEMP_F="/tmp/del.lines.$$"
usage()
{
echo?"Usage:$0?file?[file...]"
echo?"try?$0?-help?for?more?info"
exit?1
}
if?[?$#?-eq?0?]?;
then
usage
fi
FILES=$1
While?[?$#?-gt?0?]
do
echo?"...$1"
case?$1?in
--help)
echo?"Use?this?script?to?delete?all?blank?lines?from?a?text?file(s)"
exit?0
;;
*)
FILE_NAME=$1
If?[?-f?$1?]
then
sed?'/^$/d'?$FILE_NAME?>?$TEMP_F
mv?$TEMP_F?$FILE_NAME
else
echo?"$0?cannot?find?this?file:?$1"
fi
shift
;;
esac
done
2.保存腳本并增加執(zhí)行權(quán)限:?chmod?+x?del.lines,執(zhí)行后腳本提示尋幫助:
3.?為了驗證腳本執(zhí)行效果:
添加兩個含有空行的無用數(shù)據(jù)腳本文件:
文件內(nèi)容截圖如下:
4.?執(zhí)行腳本并驗證效果:
注解:
basename命令能夠從路徑中分離出文件名。通常用于shell腳本中
shift語句用于遷移位置變量,將?$1~$9?依次向左傳遞
eg:
若當(dāng)前腳本程序獲得的位置變量如下:
$1=file1、$2=file2、$3=file3、$4=file4
則執(zhí)行一次shift命令后,各位置變量為:
$1=file2、$2=file3、$3=file4
再次執(zhí)行shift命令后,各位置變量為:
$1=file3、$2=file4
.?.?.
5.?根據(jù)實際環(huán)境,進行相應(yīng)的腳本修改,以便為生產(chǎn)環(huán)境服務(wù)。
歡迎關(guān)注微信公眾號:小溫研習(xí)社
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機、免備案服務(wù)器”等云主機租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。