簡體   English   中英

如何為`perl -a`指定列分隔符?

[英]How to specify column separator for `perl -a`?

我試圖讀取一個文本文件(使用perl),其中每行都有幾條記錄,如下所示:

r1c1 & r1c2 & r1c3 \\
r2c1 & r2c2 & r2c3 \\

因此, &是記錄分隔符。

Perl幫助說:

$ perl -h 
  -0[octal]       specify record separator (\0, if no argument)

為什么要使用八進制數超出了我的范圍。 但是046是分隔符&的八進制ASCII,因此我嘗試了以下操作:

perl -046 -ane 'print join ",", @F; print "\n"' file.txt

所需的輸出將在哪里

r1c1,r1c2,r1c3 \\
r2c1,r2c2,r2c3 \\    

但這是行不通的。 您如何正確執行?

我認為您正在混合兩種不同的東西。 -0影響的記錄分隔符是將輸入划分為“行”的原因。 -a使得每個“行”然后在@F默認分割為@F 要更改-a分割的內容,請使用-F開關,如-F'&'

如果對perl命令行選項有疑問,請在命令行中查看perldoc perlrun

另外,如果您使用-l選項perl -F'&' -lane ...它將在將每行的行尾(EOL)字符傳遞給腳本之前刪除,並將其添加到每個打印件中,因此您無需在代碼中添加“ \\ n”。 一個襯里的字符越少越好。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM