可能是一個非常簡單的問題: 我有一個perl文件sed.perl
,它將一個字符串作爲輸入,在那裏進行一些替換並將其輸出到標準輸出中。如何在終端管道中運行perl文件
#!/usr/bin/perl
use warnings;
use strict;
use diagnostics;
use feature 'say';
#use Cwd;
my ($text) = @ARGV;
$text =~ s/\.\)\n/'\.'\)\n/;
print $text;
我想從終端管道輸出字符串喂腳本。讓我們這樣說:
cat input.txt | perl sed.perl
但這不起作用:Use of uninitialized value $text in substitution (s///) at
使用分數符號不工作之一:
cat input.txt | perl sed.perl -
你想補充一點,它的更好風格使用'<>'而不是'':腳本的用戶可以通過'<>''''作爲參數傳遞輸入來自的文件的名稱,這對於Unix實用程序來說是一種常見而有用的約定跟隨。 –
reinierpost
好點 - 修改後。 – Sobrique
'\ n'會匹配(除非您使用-l與-n或-p) – ysth