考虑这个perl one liner
perl -e "$\=qq{\n};$/=qq{ };while(<>){print;}" "perl.txt" > perlMod.txt
Run Code Online (Sandbox Code Playgroud)
perl.txt的内容是
a b
c
Run Code Online (Sandbox Code Playgroud)
perlMod.txt的内容是
a
b
c
Run Code Online (Sandbox Code Playgroud)
以十六进制表示的perlMod.txt的内容是
61200D0A620D0A630D0A
Run Code Online (Sandbox Code Playgroud)
请注意,我已将空间指定为输入记录分隔符,并将"\n"指定为默认输出记录分隔符.我期待b之后的两个'0D0A(十六进制为62).一个0D0A是b之后的新行.另一个0D0A属于输出记录分隔符.为什么只有一个0D0A.
<>即使您更改了输入记录分隔符,您似乎仍然认为仍然会停止读取换行符.
您的输入包含61 20 62 0D 0A 63或a?b??c.
第一次阅读a?.
你打印a?.
为此,$\得到补充,给予a??.
然后:crlf做翻译,给予a???.
文件中没有其他空格,因此您的第二次读取将读取文件的其余部分:b??c.
然后:crlf做翻译,给予b?c.
你打印b?c.
为此,$\得到补充,给予b?c?.
然后:crlf做翻译,给予b??c??.
所以,总而言之,你得到a???b??c??,或者61 20 0D 0A 62 0D 0A 63 0D 0A.
| 归档时间: |
|
| 查看次数: |
55 次 |
| 最近记录: |