在sed中没有标志的方式运行?

时间:2017-04-05 14:19:57

标签: sed

我正在攻读考试,

有以下示例问题:

  

编写一个带有电话号码并更改前缀的sed命令   区域代码111和222仅限555.将括号中的所有区号更改为XXX。 提交为test.sed

因此我编码如下,

test.sed:

s/\(([0-9]{3})\)[[:space:]](111|222)-([0-9]{4})/(XXX) 555-\3/;s/\(([0-9]{3})\)[[:space:]]([0-9]{3})-([0-9]{4})/(XXX) \2-\3/

file.txt的:

(123) 123-2345
(123) 111-2345
(111) 222-2345
(222) 333-2345
111 123-3423

输出:

(XXX) 123-2345
(XXX) 555-2345
(XXX) 555-2345
(XXX) 111-2345
111 123-3423

我以前运行的命令:

  

sed -E -f test.sed file.txt

当我处理这个示例问题时,我想出了检查它的人如何检查这个问题。因为如果它是真正的考试,我只会提交test.sed文件,我不能告诉他/她他/她必须使用-E和-f标志来测试这个程序。但实际上,在考试中没有这样的机会说出来。

我只是不知道他们如何根据他们的观点来检查这个问题。 他们可能只需输入sed -f test.sed file.txt来运行它,但可能会错过像-E这样的标志。

有没有办法在不使用-E -f标志的情况下执行此类操作?我试过不使用那两个标志然后它只是不起作用。或者这个问题是否意味着我必须制作包含-E -f标志的独立.sed?但这可能吗?

0 个答案:

没有答案