茫茫網海中的冷日
         
茫茫網海中的冷日
發生過的事,不可能遺忘,只是想不起來而已!
 恭喜您是本站第 1669337 位訪客!  登入  | 註冊
主選單

Google 自訂搜尋

Goole 廣告

隨機相片
IMG_60D_00315.jpg

授權條款

使用者登入
使用者名稱:

密碼:


忘了密碼?

現在就註冊!

小企鵝開談 : [轉貼]linux 檔案 新增換行符號

發表者 討論內容
冷日
(冷日)
Webmaster
  • 註冊日: 2008/2/19
  • 來自:
  • 發表數: 15771
[轉貼]linux 檔案 新增換行符號
linux 檔案 新增換行符號

[ linux add(append) carriage return(linefeed) to the end of file ]

linux 的換行符號是 \n

windows 的是 \r\n

如果只是要在檔尾加上 \n,很簡單:
$> echo "" >> file.txt

在檔尾就會多 1 byte (用vi 開,游標移到最後,會停在最後一行,不會換行)

如果要換行,要用 echo -e (enable interpretation of backslash escapes)
$> echo -e "\n" >> file.txt

整個 windows 的文字檔, \r\n 要換成 linux 的換行 \n

可以用下面簡單的 python :
$> vi fixNewline.py

#! /usr/bin/python

import sys, shutil
data = sys.stdin.readlines()
print "Start ..."
f = open('/home/userHome/TestTxt/ready.txt', 'w');

for line in data:
        if line[-2:] == "\r\n":
                f.write( line[:-2] + "\n" )
        elif line[-1:] == "\n" :
                f.write( line )
        else:
                f.write( line + "\n" )

f.close()
print "## file close."
print "## finish."
print " "

然後將要轉換的文字檔送到標準輸出,再由 python 由標準輸入讀進去:
$>  cat notReady.txt | python fixNewline.py

後來發現 CentOS 自己就有轉換工具:

dos2unix:轉換 DOS/MAC 格式成 UNIX 的文字格式。

unix2dos:轉換 UNIX 的文字格式成 DOS format

在加上一點 script 應該就可以完成上面的麻煩事。

原文出處:linux 檔案 新增換行符號 @ 老人最愛碎碎念 :: 隨意窩 Xuite日誌
冷日
(冷日)
Webmaster
  • 註冊日: 2008/2/19
  • 來自:
  • 發表數: 15771
[轉貼]linux echo 命令的 -n、-e 兩個參數
linux echo命令的-n、-e兩個參數 (2013-01-14 19:53:52)

echo -n 不換行輸出
$echo -n "123"
$echo "456"

最終輸出
123456

而不是
123
456

echo -e 處理特殊字符
若字符串中出現以下字符,則特別加以處理,而不會將它當成一般文字輸出:
\a 發出警告聲;
\b 刪除前一個字符;
\c 最後不加上換行符號;
\f 換行但光標仍舊停留在原來的位置;
\n 換行且光標移至行首;
\r 光標移至行首,但不換行;
\t 插入tab;
\v 與\f相同;
\\ 插入\字符;
\nnn 插入nnn(八進制)所代表的ASCII字符;

$echo -e "a\bdddd"
dddd
$echo -e "a\adddd" //輸出同時會發出報警聲音
adddd
$echo -e "a\ndddd" //自動換行
a
dddd


原文出處:linux echo命令的-n、-e两个参数_丶Source_新浪博客
前一個主題 | 下一個主題 | 頁首 | | |



Powered by XOOPS 2.0 © 2001-2008 The XOOPS Project|