我需要一個使用sed,awk或perl的班輪來刪除我的數據文件中的空白行。在我的文件中的數據是這樣的 -刪除數據集中的空白行
Aamir
Ravi
Arun
Rampaul
Pankaj
Amit
Bianca
這些空白是在隨機和出現在我的數據文件的任何地方。有人可以建議一個班輪從我的數據集中刪除這些空行。
我需要一個使用sed,awk或perl的班輪來刪除我的數據文件中的空白行。在我的文件中的數據是這樣的 -刪除數據集中的空白行
Aamir
Ravi
Arun
Rampaul
Pankaj
Amit
Bianca
這些空白是在隨機和出現在我的數據文件的任何地方。有人可以建議一個班輪從我的數據集中刪除這些空行。
它可以用很多方式完成。
e.g使用awk:
awk '$0' yourFile
或sed的:
sed '/^$/d' yourFile
或者grep的:
grep -v '^$' yourFile
你可以這樣做:
sed -i.bak '/^$/d' file
AWK解決方案:
這裏我們通過輸入文件循環來檢查它們是否有任何字段集。 NF是AWK的內置變量,設置爲第幾個字段。如果該線路爲空,則NF未設置。在這一個班輪中,我們測試NF是否爲真,即設爲一個值。如果是,那麼我們打印該行,當該模式爲真時,該行隱含在AWK中。
awk 'NF' INPUT_FILE
SED解決方案:
該解決方案是類似於在答覆中提到的那些。作爲語法顯示,我們不打印任何空白的行。
sed -n '/^$/!p' INPUT_FILE
Perl解決方案。從命令行。
$ perl -i.bak -n -e'print if /\S/' INPUT_FILE
就地編輯文件並創建原始文件的備份。
一個Perl的解決方案:
perl -ni.old -e 'print unless /^\s*$/' file
...它創建原始文件的備份副本,後綴爲 '名爲.old'
爲Perl它是比較容易的的sed,awk中,或grep的。
$作爲TMP/TMPFILE阿米爾
拉維阿倫Rampaul
潘卡阿米特
比安卡$ perl的
-on -i的{^ \ s * \ n $} {}'tmp/tmpfile爲$ TMP/TMPFILE 阿米爾拉維·蘭帕爾 阿倫阿米特潘卡 比安卡
這裏的名字用空格分隔符顯示。但在shell中,名稱顯示在另一個之下,沒有任何空行。 – Bharatt
感謝。我正在尋找一個可以編輯的Perl腳本。 – anjanb
刪除'.bak',這將在沒有備份的情況下就地編輯。 –