b.txt解釋如下: 實(shí)現(xiàn)的思想有些別扭:把保留空間(臨時(shí)。用sed實(shí)現(xiàn)文件反轉(zhuǎn)。" />

日本免费全黄少妇一区二区三区-高清无码一区二区三区四区-欧美中文字幕日韩在线观看-国产福利诱惑在线网站-国产中文字幕一区在线-亚洲欧美精品日韩一区-久久国产精品国产精品国产-国产精久久久久久一区二区三区-欧美亚洲国产精品久久久久

用sed實(shí)現(xiàn)文件反轉(zhuǎn)


問(wèn)題:如何反轉(zhuǎn)文件:
為了方便討論我們假定我們要反轉(zhuǎn)的文件a.txt內(nèi)容如下(三行):
hello
world
sed
解決:
sed -e "1!G;h;$!d" a.txt > b.txt解釋如下:
實(shí)現(xiàn)的思想有些別扭:把保留空間(臨時(shí)緩沖區(qū))的內(nèi)容附接到當(dāng)前行的模式空間,
刪除當(dāng)前行模式空間,如此往復(fù),直到最后一行,到最后一行的時(shí)候不刪除當(dāng)前模
式空間,最后輸出模式空間 。命令:
上述sed命令"1!G;h;$!d",用分號(hào)隔開(kāi)三個(gè)子命令G, h, d,應(yīng)用于每一行的分析,
G表示把緩沖區(qū)內(nèi)容附接到當(dāng)前模式空間中,h表示將模式空間的內(nèi)容保存到緩沖區(qū)中,
d表示刪除模式空間 。地址:
我們看到G命令與d命令前面都有前綴,分別是1!和$!,這表示命令的有效的范圍 。
1!G表示除了第一行外都執(zhí)行G命令,$!d表示除了最后一行外都執(zhí)行d命令 。
(舉一反三:1G表示只有第一行才執(zhí)行G命令,$d表示只有最后一行才執(zhí)行d命令) 。處理過(guò)程:
好了,處理過(guò)程涉及的命令以及命令的有效范圍我們都清楚了,就可以看看命令的
執(zhí)行過(guò)程以及處理過(guò)程緩沖區(qū)空間和模式空間的變化:命令 緩沖區(qū) 模式空間
1行 h;d 前(null) 后hellon 前hellon 后(null)
2行 G;h;d 前hellon 后worldnhellon 前worldn 后(null)
3行 G;h 前worldnhellon 后sednworldnhellon 前sedn 后sednworldnhellon【用sed實(shí)現(xiàn)文件反轉(zhuǎn)】說(shuō)明:前表示分析前,后表示分析后 。

    推薦閱讀