Thursday, August 27, 2015

Linux: 實用命令

在Linux系統中處理文本是很方便的,可打很容易找字串、取代文字、提取文字、查看行數等等。在這裏總結一下實用命令吧!

基礎的Linux操作可以看鳥哥的 Linux 私房菜,這個教學非常詳細。在這裏我只總結幾個在SMT中比較常用的工具和命令(其實在鳥哥那邊也有說明0.0)。

首先在Linux系統中的基本編輯器就是vi/vim了,詳細教學請看鳥哥的 Linux 私房菜 - 第九章、vim 程式編輯器

Linux中各種壓縮和解壓縮可參考這裏︰凍仁的筆記 - GNU / Linux 各種壓縮與解壓縮指令

實用命令(有下劃線的是參數,請按實際情況修改)。
複製folderA整個檔案(包含子目錄)到folderB︰
[root@mkytap root]# cd -R folderA folderB

把file裏面前20句打印出來︰
[root@mkytap root]# head -20 file

把file裏面最後20句打印出來︰
[root@mkytap root]# tail -n 20 file

把file裏面包含"boy"的句子打印出來並顯示行數(n),引號內可使用RE
把file裏面所有子目錄都找一遍可用-r
[root@mkytap root]# grep -n 'boy' file

把file裏面包含"boy"的句子的行數打印出來(不包含句子),引號內可使用RE
[root@mkytap root]# grep -n 'boy' file | cut -f1 -d ':'

顯示file內有多少行資料︰
[root@mkytap root]# wc -l file

把fileA中間第101行至200行打印出來︰
[root@mkytap root]# sed -n 101,200p fileA

把fileA中間第101行至200行剪下並放到到fileB︰
[root@mkytap root]# sed -n 101,200p fileA > fileB && sed -i 101,200d fileA

把file中的'boy'換成'girl',格式是's/搜尋字串/取代字串/g',搜尋字串和取代字串可使用RE
[root@mkytap root]# sed -e 's/boy/girl/g' file

移除file所有換行符號(reference)︰
[root@mkytap root]# sed -e ':a;N;$!ba;s/\n/ /g' file

把file裏面的資料從小到大排序,前面加上LC_ALL=C 是以ASCII編號排序喔︰
[root@mkytap root]# sort file

把file裏面的資料從大到小以第三行(tab分隔)作為條件排序︰
[root@mkytap root]# sort -r -k3 file

把file裏面的資料去重,並顯示重覆次數︰
[root@mkytap root]# cat file | sort | uniq -c | sort -n -r

把fileA的編碼從ISO-8859-1換成UTF-8,並儲存到fileB︰
[root@mkytap root]# iconv -f ISO-8859-1 -t UTF-8 fileA > fileB

把fileA從繁體中文換成簡體中文,並儲存到fileB︰
[root@mkytap root]# cat fileA | cconv -f utf8 -t utf8-cn > fileB

把fileA從簡體中文換成繁體中文,並儲存到fileB︰
[root@mkytap root]# cat fileA | cconv -f utf8 -t utf8-tw > fileB

No comments: