文本處理工具

在Linux系統(tǒng)中,我們經(jīng)常需要使用各種文本處理工具來(lái)處理各種文本信息混埠,熟悉掌握這些使用的小工具誓酒,能極大的提高工作效率。
常用的文本處理工具有以下這些:


cat命令

cat命令的主要功能是將一個(gè)或多個(gè)文件或者標(biāo)準(zhǔn)輸入連接貌亭,并輸出至標(biāo)準(zhǔn)輸出柬唯。通常用來(lái)查看文本文件內(nèi)容。

選項(xiàng) 說(shuō)明
-A, --show-all 等價(jià)于 -vET
-b, --number-nonblank 對(duì)非空輸出行編號(hào)
-e 等價(jià)于 -vE
-E, --show-ends 在每行結(jié)束處顯示 $
-n, --number 對(duì)輸出的所有行編號(hào)
-s, --squeeze-blank 不輸出多行空行
-t 與 -vT 等價(jià)
-T, --show-tabs 將跳格字符顯示為 ^I
-u (被忽略)
-v, --show-nonprinting 使用 ^ 和 M- 引用圃庭,除了 LFD 和 TAB 之外
--help 顯示此幫助信息并退出
--version 輸出版本信息并退出

要注意的是:如果[文件]缺省锄奢,或者[文件]為 - ,則讀取標(biāo)準(zhǔn)輸入剧腻。

[root@localhost data]# cat <<EOF >test.txt 
> 123
> 456
> EOF
[root@localhost data]# cat test.txt 
123
456
[root@localhost data]# cat -n test.txt           #顯示行號(hào)
     1  123
     2  456
[root@localhost data]# cat -         #缺省時(shí)拘央,讀取標(biāo)準(zhǔn)輸入
sss                                 #標(biāo)準(zhǔn)輸入
sss                                 #讀取內(nèi)容  
[root@localhost data]# cat /dev/null >test.txt    #/dev/null 是一個(gè)空文件,利用它可以實(shí)現(xiàn)清空效果        

tac命令

tac命令书在,即cat命令反過(guò)來(lái)寫的灰伟,功能也類似,是按照行的倒序輸出文本信息儒旬。

rev命令

rev命令栏账,將每一行的前后內(nèi)容倒序輸出帖族。

[root@localhost data]# cat test.txt 
123
456
[root@localhost data]# tac test.txt 
456
123
[root@localhost data]# rev test.txt 
321
654

more和less命令

more命令可以分頁(yè)查看文件文件,左下角會(huì)顯示當(dāng)前顯示距離文末的百分比挡爵,通過(guò)空格鍵可以每次向下翻一頁(yè)竖般,b鍵向上翻一頁(yè),回車鍵每次向下翻一行了讨。按q鍵可以退出捻激。翻到最后一行時(shí),會(huì)自動(dòng)退出more命令前计。
相比于more命令胞谭,less命令執(zhí)行后,默認(rèn)不會(huì)退出男杈,直到用戶執(zhí)行退出命令丈屹。less命令的基本功能與more類似,空格鍵向下翻頁(yè)伶棒,b鍵向上翻頁(yè)旺垒,上下箭頭上移或下移一行,使用g/G可將光標(biāo)切換到文件首頁(yè)/尾頁(yè)肤无,輸入/string回車后先蒋,可以向下進(jìn)行搜索string對(duì)應(yīng)的字符串,?string可以實(shí)現(xiàn)向上查找功能宛渐,配合n和N可以跳到下一個(gè) 或 上一個(gè)匹配竞漾。less 命令是man命令使用的分頁(yè)器。

[root@localhost data]# ls /etc/ | less     #more和less經(jīng)常配合管道符一起使用

head和tail命令

head命令常用選項(xiàng)說(shuō)明:

選項(xiàng) 說(shuō)明
-c, --bytes=[-]K 顯示每個(gè)文件的前K 字節(jié)內(nèi)容 ;如果附加"-"參數(shù)窥翩,則除了每個(gè)文件的最后K字節(jié)數(shù)據(jù)外顯示剩余全部?jī)?nèi)容
-n, --lines=[-]K 顯示每個(gè)文件的前K 行內(nèi)容;如果附加"-"參數(shù)业岁,則除了每個(gè)文件的最后K 行外顯示剩余全部?jī)?nèi)容
-q, --quiet, --silent 不顯示包含給定文件名的文件頭
-v, --verbose 總是顯示包含給定文件名的文件頭
--help 顯示此幫助信息并退出
--version 顯示版本信息并退出
[root@localhost data]# head /etc/passwd      #不帶任何選項(xiàng),默認(rèn)輸出前10行
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
....省略以下內(nèi)容
[root@localhost data]# head  -c 6 /etc/passwd    #顯示前6個(gè)字節(jié)的內(nèi)容
root:x
[root@localhost data]# head  -c -6 /etc/passwd   #加-表示寇蚊,顯示除了最后6個(gè)字節(jié)的所有內(nèi)容
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
....省略以下內(nèi)容
[root@localhost data]# head  -n 6 /etc/passwd   #顯示前6行內(nèi)容
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
....省略一下內(nèi)容
[root@localhost data]# head  -n -6 /etc/passwd   #顯示除了最后6行之外的全部?jī)?nèi)容
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
....省略一下內(nèi)容

tail命令常用選項(xiàng)說(shuō)明:

選項(xiàng) 說(shuō)明
--retry 即使tail開(kāi)始時(shí)就不能訪問(wèn) 或者在tail運(yùn)行后不能訪問(wèn),也仍然不停地嘗試打開(kāi)文件. -- 只與-f合用時(shí)有用.
-c, --bytes=N 輸出最后N個(gè)字節(jié)
-f 當(dāng)文件增長(zhǎng)時(shí),輸出后續(xù)添加的數(shù)據(jù); -f, --follow以及 --follow=descriptor 都是相同的意思,常用于日志監(jiān)控
-n, --lines=N 輸出最后N行,而非默認(rèn)的最后10行
--max-unchanged-stats=N 參看texinfo文檔(默認(rèn)為5)
--max-consecutive-size-changes=N 參看texinfo文檔(默認(rèn)為200)
--pid=PID 與-f合用,表示在進(jìn)程ID,PID死掉之后結(jié)束.
-q, --quiet, --silent 從不輸出給出文件名的首部
-s, --sleep-interval=S 與-f合用,表示在每次反復(fù)的間隔休眠S秒
-v, --verbose 總是輸出給出文件名的首部
--help 顯示幫助信息后退出
--version 輸出版本信息后退出
[root@localhost data]# tail -n 7 /etc/passwd   #顯示最后7行內(nèi)容
wufujie:x:1000:1000:myself,home,2013007,3454324:/home/wufujie:/bin/bash
test1:x:1001:1001::/home/test1:/bin/bash
[root@localhost data]# tail -n +7 /etc/passwd   #有+時(shí)笔时,表示顯示除了前7行之外的所有內(nèi)容,與head命令的 - 類似
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
[root@localhost data]# ping www.baidu.com >ping.log   #ping百度的網(wǎng)址
[root@localhost ~]# tail -f /data/ping.log    #再打開(kāi)新的終端查看文件內(nèi)容仗岸,一直在更新   tail命令不會(huì)自動(dòng)退出
PING www.a.shifen.com (180.101.49.12) 56(84) bytes of data.
64 bytes from 180.101.49.12 (180.101.49.12): icmp_seq=1 ttl=128 time=11.2 ms
64 bytes from 180.101.49.12 (180.101.49.12): icmp_seq=2 ttl=128 time=11.5 ms
....省略一下內(nèi)容
[root@localhost ~]# tailf /data/ping.log    #tailf命令與tail -f類似允耿,不過(guò)可以退出
64 bytes from 180.101.49.11 (180.101.49.11): icmp_seq=45 ttl=128 time=9.33 ms
tailf: cannot open /data/ping.log: No such file or directory  #在另一個(gè)終端窗口刪除ping.log文件后,會(huì)直接退出

wc命令

wc命令可以統(tǒng)計(jì)文件和標(biāo)準(zhǔn)輸入的文本的行數(shù)扒怖,單詞數(shù)右犹,字節(jié)數(shù)和字符數(shù)。
wc命令常用選項(xiàng)說(shuō)明:

選項(xiàng) 說(shuō)明
-c, --bytes 打印字節(jié)數(shù)
-m, --chars 打印字符數(shù)
-l, --lines 打印行數(shù)
-L, --max-line-length 打印最長(zhǎng)行的長(zhǎng)度
-w, --words 打印單詞數(shù)
[root@localhost data]# wc /etc/passwd                #統(tǒng)計(jì)行數(shù)姚垃,單詞數(shù)念链,字節(jié)總數(shù)
  50   96 2582 /etc/passwd
[root@localhost data]# wc -l /etc/passwd
50 /etc/passwd
[root@localhost data]# wc -w /etc/passwd
96 /etc/passwd
[root@localhost data]# wc -m /etc/passwd
2582 /etc/passwd
[root@localhost data]# wc -c /etc/passwd
2582 /etc/passwd
[root@localhost data]# wc -L /etc/passwd
99 /etc/passwd
[root@localhost data]# who | wc -l                 #與管道符連接使用
2

cut和paste命令

cut命令的作用是以指定的分隔符對(duì)文件或標(biāo)準(zhǔn)輸入的每行的內(nèi)容進(jìn)行切割,然后將切割的內(nèi)容按順序編號(hào),最后將指定標(biāo)號(hào)的所有內(nèi)容逐行輸出到標(biāo)準(zhǔn)輸出,默認(rèn)的分隔符為TAB掂墓。
cut命令常用選項(xiàng)說(shuō)明:

選項(xiàng) 說(shuō)明
-b, --bytes=LIST 輸出這些字節(jié) 谦纱,僅顯示行中指定以字節(jié)為單位的范圍的內(nèi)容
-c, --characters=LIST 輸出這些字符 ,僅顯示行中指定以字符為單位的范圍的內(nèi)容
-d, --delimiter=DELIM 使用DELIM取代TAB做字段(field) 分隔符 君编,默認(rèn)的分隔符為TAB
-f, --fields=LIST 顯示指定字段的內(nèi)容
-n (忽略) 與-b選項(xiàng)連用跨嘉,不分割多字節(jié)字符,如漢字
-s, --only-delimited 不顯示沒(méi)有分隔符的行
--output-delimiter=<字段分割符> 指定輸出內(nèi)容的是字段分隔符
--help 顯示幫助信息,然后結(jié)束
--version 顯示版本信息,然后結(jié)束

使用且只使用-b,-c或-f中的一個(gè)選項(xiàng). LIST由一個(gè)范圍(range)或逗號(hào)隔開(kāi)的多個(gè)范圍組成.范圍是下列形式之一:
N: 第N個(gè)字節(jié), 字符或字段, 從1計(jì)數(shù)起
N-: 從第N個(gè)字節(jié), 字符或字段直至行尾
N-M: 從第N到第M(并包括第M)個(gè)字節(jié), 字符或字段
-M: 從第1到第M(并包括第M)個(gè)字節(jié), 字符或字段

[root@localhost data]# echo 吃飯了嗎 >test.txt 
[root@localhost data]# cat test.txt 
吃飯了嗎
[root@localhost data]# cut -b -2 test.txt 

[root@localhost data]# cut -b -3 test.txt 
吃
[root@localhost data]# cut -nb -3 test.txt    # -nb連用吃嘿,不分割多字節(jié)字符
吃飯了
[root@localhost data]# cat test.txt 
1 2 3
4 5 6
7 8 9
[root@localhost data]# cat test.txt | tr " " :|cut -d: -f2   #用:代替空格作為分隔符祠乃,并用cut命令取出第二列內(nèi)容
2
5
8
[root@localhost data]# cat test.txt | tr " " :|cut -d: --complement -f2   #--complement 取反
1:3
4:6
7:9

paste命令可以將兩個(gè)文件合并為一個(gè)文件,默認(rèn)以行作為單位兑燥,文件中相同行的內(nèi)容合并為一行亮瓷。

[root@localhost data]# cat test.txt 
1 2 3
4 5 6
7 8 9
[root@localhost data]# cat test2.txt 
k l m
a b c
d e f
g h i
[root@localhost data]# paste test.txt test2.txt 
1 2 3   k l m
4 5 6   a b c
7 8 9   d e f
        g h i
[root@localhost data]# paste -d"#" test.txt test2.txt   # -d:指定兩個(gè)文件的分割字符串
1 2 3#k l m
4 5 6#a b c
7 8 9#d e f
#g h i
[root@localhost data]# paste -s test.txt test2.txt   # -s:先將文件內(nèi)容合并為一行,在進(jìn)行合并
1 2 3   4 5 6   7 8 9
k l m   a b c   d e f    g h i

sort和uniq命令

sort命令可以按照一定的要求對(duì)文件所有的行進(jìn)行排序降瞳,默認(rèn)按照字母表順序排序嘱支,數(shù)字在字母前面。
sort命令常用選項(xiàng)說(shuō)明:

短參數(shù) 長(zhǎng)參數(shù) 說(shuō)明
-n – number-sort 按字符串?dāng)?shù)值排序挣饥,與-g區(qū)別為不轉(zhuǎn)為浮點(diǎn)數(shù)
-g –general-number-sort 按通用數(shù)值排序除师,支持科學(xué)計(jì)數(shù)法
-f –ignore-case 忽略大小寫,默認(rèn)大小寫字母不同
-k –key=POS1[,POS2] 排序從POS1開(kāi)始扔枫,若指定POS2汛聚,則POS2結(jié)束,否則以POS1排序
-t –field-separator=SEP 指定列的分割符
-r –reverse 降序排序短荐,默認(rèn)為升序
-h –human-numeric-sort 使用易讀性數(shù)字(例如: 2K 1G)
-u –unique 去除重復(fù)的行
-o –output=FILE 將輸出寫入文件
[root@localhost data]# cat test.txt     [root@localhost data]# sort test.txt 
Avs                                     2vr                        #排序之后對(duì)比           
SDV                                     7vf 
2vr                                     abc
swe                                     ade
7vf                                     Avs
ade                                     SDV     
abc                                     swe     
[root@localhost data]# sort -t: -k 3 /etc/passwd | head -n 3   #以:為分隔符倚舀,對(duì)第三列按字母順序排序
root:x:0:0:root:/root:/bin/bash
wufujie:x:1000:1000:myself,home,2013007,3454324:/home/wufujie:/bin/bash
test1:x:1001:1001::/home/test1:/bin/bash
[root@localhost data]# sort -t: -k 3 -nr /etc/passwd | head -n 3   #以:為分隔符,對(duì)第三列按數(shù)字大小倒序排序
nfsnobody:x:65534:65534:Anonymous NFS User:/var/lib/nfs:/sbin/nologin
wfj1:x:2005:2005::/home/wfj1:/bin/bash
wfj:x:2004:2004::/home/wfj:/bin/bash
[root@localhost data]# sort -R test2.txt      # -R 表示隨機(jī)排序
[root@localhost data]# cut -d: -f7 /etc/passwd | sort -u    # -u:排除相同的行搓侄,去重。
/bin/bash
/bin/sync
/bin/tcsh
/sbin/halt
/sbin/nologin
/sbin/shutdown

uniq命令
uniq命令可以對(duì)指定的文件生成報(bào)告信息和去重相鄰行重復(fù)行的內(nèi)容话速。
要注意的是:uniq 不會(huì)檢查重復(fù)的行讶踪,除非它們是相鄰的行。如果您想先對(duì)輸入排序泊交,使用沒(méi)有uniq 的"sort -u"乳讥。
uniq命令常用選項(xiàng)說(shuō)明:

短參數(shù) 長(zhǎng)參數(shù) 說(shuō)明
-c --count 在每行前加上表示相應(yīng)行目出現(xiàn)次數(shù)的前綴編號(hào)
-d --repeated 只輸出重復(fù)的行
-D --all-repeated[=delimit-method 顯示所有重復(fù)的行delimit-method={none(default),prepend,separate} 以空行為界限
-f --skip-fields=N 比較時(shí)跳過(guò)前N 列
-i --ignore-case 在比較的時(shí)候不區(qū)分大小寫
-s --skip-chars=N 比較時(shí)跳過(guò)前N 個(gè)字符
-u --unique 只顯示唯一的行
-z --zero-terminated 使用'\0'作為行結(jié)束符,而不是新?lián)Q行
-w --check-chars=N 對(duì)每行第N 個(gè)字符以后的內(nèi)容不作對(duì)照
--help 顯示此幫助信息并退出
--version 顯示版本信息并退出

diff和patch命令

diff命令可以對(duì)比分析出兩個(gè)文件的不同之處廓俭,方便查看改動(dòng)過(guò)的位置和內(nèi)容云石。

[root@localhost data]# cat test.txt 
123
234
345
[root@localhost data]# cat test2.txt 
123
456
789
[root@localhost data]# diff test.txt test2.txt 
2,3c2,3
< 234
< 345
---
> 456
> 789

我們來(lái)說(shuō)明一下該輸出結(jié)果的含義,要明白diff比較結(jié)果的含義研乒,我們必須牢記一點(diǎn)汹忠,diff描述兩個(gè)文件不同的方式是告訴我們?cè)趺礃痈淖兊谝粋€(gè)文件之后與第二個(gè)文件匹配。我們看看上面的比較結(jié)果中的第一行 2,3c2,3 前面的數(shù)字2,3表示第一個(gè)文件中的行,中間有一個(gè)字母c表示需要在第一個(gè)文件上做的操作(a=add,c=change,d=delete)宽菜,后面的數(shù)字2,3表示第二個(gè)文件中的行谣膳。
2,3c2,3 的含義是:第一個(gè)文件中的第[2,3]行(注意這是一個(gè)閉合區(qū)間,包括第2行和第3行)需要做出修改才能與第二個(gè)文件中的[2,3]行相匹配铅乡。
接下來(lái)的內(nèi)容則告訴我們需要修改的地方继谚,前面帶 < 的部分表示左邊文件的第[2,3]行的內(nèi)容,而帶> 的部分表示右邊文件的第[2,3]行的內(nèi)容阵幸,中間的 --- 則是兩個(gè)文件內(nèi)容的分隔符號(hào)花履。

[root@localhost data]# diff test.txt test2.txt -y -W 30   # -y:并排對(duì)比,-W:指定行寬度挚赊,| 表示兩個(gè)文件的不同之處
123     123
234       | 456
345       | 789
[root@localhost data]# diff -u test.txt test2.txt   # -u:使用unified格式顯示
--- test.txt    2020-01-01 16:30:56.498139453 +0800      # -:表示第一個(gè)文件
+++ test2.txt   2020-01-01 16:38:36.734143355 +0800      # +:表示第二個(gè)文件
@@ -1,3 +1,3 @@    # -1,3:表示第一個(gè)文件的第1到第3行诡壁,+1,3:表示第二個(gè)文件的第1到第3行
 123         
-234            # -開(kāi)頭的行表示從第一個(gè)文件刪除此行可以得到第二個(gè)文件
-345 
+456            #  +開(kāi)頭的行表示從第一個(gè)文件增加此行可以得到第二個(gè)文件
+789

patch命令
patch命令讓用戶利用設(shè)置修補(bǔ)文件的方式咬腕,修改,更新原始文件涨共。,結(jié)合diff的輸出unified格式信息和兩個(gè)文件的任意一個(gè)举反,就可以生成另一個(gè)文件。

[root@localhost data]# diff -u test.txt test2.txt >diff.log       #patch還原文件
[root@localhost data]# ls
diff.log  ping  test2.txt  test.txt
[root@localhost data]# rm -f test2.txt 
[root@localhost data]# ls
diff.log  ping  test.txt
[root@localhost data]# patch -b test.txt diff.log 
patching file test.txt
[root@localhost data]# ls
diff.log  ping  test.txt  test.txt.orig
[root@localhost data]# cat test.txt.orig 
123
234
345
[root@localhost data]# cat test.txt
123
456
789
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末火鼻,一起剝皮案震驚了整個(gè)濱河市室囊,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌魁索,老刑警劉巖融撞,帶你破解...
    沈念sama閱讀 222,627評(píng)論 6 517
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異粗蔚,居然都是意外死亡尝偎,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,180評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門鹏控,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)致扯,“玉大人,你說(shuō)我怎么就攤上這事当辐《督” “怎么了?”我有些...
    開(kāi)封第一講書人閱讀 169,346評(píng)論 0 362
  • 文/不壞的土叔 我叫張陵缘揪,是天一觀的道長(zhǎng)耍群。 經(jīng)常有香客問(wèn)我义桂,道長(zhǎng),這世上最難降的妖魔是什么世吨? 我笑而不...
    開(kāi)封第一講書人閱讀 60,097評(píng)論 1 300
  • 正文 為了忘掉前任澡刹,我火速辦了婚禮,結(jié)果婚禮上耘婚,老公的妹妹穿的比我還像新娘罢浇。我一直安慰自己,他們只是感情好沐祷,可當(dāng)我...
    茶點(diǎn)故事閱讀 69,100評(píng)論 6 398
  • 文/花漫 我一把揭開(kāi)白布嚷闭。 她就那樣靜靜地躺著,像睡著了一般赖临。 火紅的嫁衣襯著肌膚如雪胞锰。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書人閱讀 52,696評(píng)論 1 312
  • 那天兢榨,我揣著相機(jī)與錄音嗅榕,去河邊找鬼。 笑死吵聪,一個(gè)胖子當(dāng)著我的面吹牛凌那,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播帽蝶,決...
    沈念sama閱讀 41,165評(píng)論 3 422
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼励稳,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼驹尼!你這毒婦竟也來(lái)了新翎?” 一聲冷哼從身側(cè)響起千扶,我...
    開(kāi)封第一講書人閱讀 40,108評(píng)論 0 277
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤澎羞,失蹤者是張志新(化名)和其女友劉穎妆绞,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體括饶,經(jīng)...
    沈念sama閱讀 46,646評(píng)論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡图焰,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,709評(píng)論 3 342
  • 正文 我和宋清朗相戀三年技羔,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片藤滥。...
    茶點(diǎn)故事閱讀 40,861評(píng)論 1 353
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡拙绊,死狀恐怖标沪,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情谨娜,我是刑警寧澤趴梢,帶...
    沈念sama閱讀 36,527評(píng)論 5 351
  • 正文 年R本政府宣布,位于F島的核電站憔狞,受9級(jí)特大地震影響瘾敢,放射性物質(zhì)發(fā)生泄漏尿这。R本人自食惡果不足惜射众,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,196評(píng)論 3 336
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望典蜕。 院中可真熱鬧,春花似錦钢猛、人聲如沸轩缤。這莊子的主人今日做“春日...
    開(kāi)封第一講書人閱讀 32,698評(píng)論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)公你。三九已至陕靠,卻和暖如春脱茉,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背税肪。 一陣腳步聲響...
    開(kāi)封第一講書人閱讀 33,804評(píng)論 1 274
  • 我被黑心中介騙來(lái)泰國(guó)打工益兄, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留箭券,地道東北人辩块。 一個(gè)月前我還...
    沈念sama閱讀 49,287評(píng)論 3 379
  • 正文 我出身青樓废亭,卻偏偏與公主長(zhǎng)得像豆村,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子你画,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,860評(píng)論 2 361

推薦閱讀更多精彩內(nèi)容