2014-10-30 38 views
0

我正在想出如何將這個字符替換爲「< 85>」的新行(請僅將其視爲一個字符 - 我認爲這是一個不可打印的字符)。如何將<85>更換爲bash腳本中的新行

我想這一個在我的腳本:

cat file | awk '{gsub(」<85>」,RS);print}' > /tmp/file.txt 

,但沒有奏效。

我希望有人能幫忙。

謝謝。

+1

如果這是實際的代碼,那麼你錯過了一個括號,並且你沒有使用正常的雙引號字符。 – ooga 2014-10-30 01:48:35

回答

0
tr '\205' '\n' <file > file.txt 

tr是音譯命令;它將一個字符轉換爲另一個字符(或刪除它,或...)。的tr在Mac OS X版本不承認十六進制轉義,所以你要使用八進制和八進制205是十六進制85

我假設該文件包含一個單字節'\x85',而不是某種組合表示爲<85>的字節。 tr不適合識別需要音譯的多字節序列。

1

隨着sedsed -e $'s/\302\205/\\n/' file > file.txt

或者awkawk '{gsub("\302\205","\n")}7'

的神奇這裏是轉換<85>字符八進制代碼點。

我在文件上使用了hexdump -b我手動將該字符插入。