iT邦幫忙

2025 iThome 鐵人賽

DAY 19
0
Security

從0基礎開始起飛,一起一步步踏入資安系列 第 19

[ Day 19 ] 來反轉一切吧 ! Linux指令 - rev / tac

  • 分享至 

  • xImage
  •  

rev

rev 的功能很單純:它會針對檔案或輸入內容,逐行把字元順序倒轉。
不過它只是把「每行的字元」倒轉,不是整份檔案的行順序

常見用途

  • 反轉文字內容測試
  • 分析 log 或逆向分析(CTF 常見)

語法 : rev [file]

反轉檔案內文字

rev file.txt

# file.txt
apple
banana
carrot

輸出:

elppa
ananab
torrac

用pipe反轉字串

echo "hello" | rev

輸出:

olleh

寫到新檔案

rev file.txt > reversed.txt
  • 將 file.txt 反轉後的內容存到 reversed.txt

其他注意事項

  • rev 對多位元組(Unicode)支援有限,特殊字元可能顯示怪怪的。
  • 遇到超長一行,可能會耗用很多記憶體。

tac

tac 的功能是反轉檔案的行順序:
最後一行先輸出,再輸出倒數第二行…直到第一行。

( 小知識:名字是 cat 倒過來 )

語法 : tac [options] [file]

常用參數

  • -s '分隔符':指定分隔符(預設是換行符 \n
  • -b:分隔符附在「前面」而不是「後面」
  • -r:讓分隔符支援正則表達式

倒序輸出檔案

tac file.txt

# file.txt
first
second
third

輸出:

third
second
first

用標準輸入 ( \n )

printf "one\ntwo\nthree\n" | tac

輸出:

three
two
one

用空格當分隔符

printf "apple banana cherry" | tac -s ' '

輸出:

cherry banana apple

分隔符位置控制

printf "one,two,three" | tac -s ','       # 預設
printf "one,two,three" | tac -s ',' -b    # 分隔符在前
  • 預設輸出:three,two,one
  • b 輸出:,three,two,one

寫到新檔案

tac file.txt > reversed.txt

# file.txt
line1
line2
line3

# reversed.txt
line3
line2
line1
  • rev file.txt > new.txt → 每一行文字的字元都反轉
  • tac file.txt > new.txt → 檔案的行順序被反轉

上一篇
[ Day 18 ] 更多的Git指令進階教學 ( Linux指令 - git )
下一篇
[ Day 20 ] 軟連結? symlink? ( Linux)
系列文
從0基礎開始起飛,一起一步步踏入資安23
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言