我有file.txt
看起來像這樣:桑達:意外的語法錯誤「(」
C00010018;1;17/10/2013;17:00;18;920;113;NONE
C00010019;1;18/10/2013;17:00;18;920;0;NONE
C00010020;1;19/10/2013;19:00;18;920;0;NONE
我試圖做兩件事情:
- 選擇具有線
$id_play
作爲第二字段。 - 替換
;
與-
在這些線上。
我嘗試:
#!/usr/bin/perl
$id_play=3;
$input="./file.txt";
$result = `sed [email protected]^\([^;]*\);$id_play;\([^;]*\);\([^;]*\);\([^;]*\);\([^;]*\);\([^;]*\)\[email protected]\1-$id_play-\2-\3-\4-\5-\[email protected] $input`;
而且我得到這個錯誤:
sh: 1: Syntax error: "(" unexpected
爲什麼?
您是否必須使用sed? – fugu
從Perl內部運行sed單行程似乎很奇怪。 – TLP
'@ g'需要被轉義,因爲perl會將它作爲一個數組來處理。用'strict strict'打開嚴格的perl – KeepCalmAndCarryOn