Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/perl/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用Perl删除单词断字_Perl_Hyphenation - Fatal编程技术网

使用Perl删除单词断字

使用Perl删除单词断字,perl,hyphenation,Perl,Hyphenation,我有以下案文: 玛丽住在一个大房子里- 几乎是最漂亮的- 这是一座美丽的山- 尝试 如何将其转换为: 玛丽住在一个大城市,靠近这个国家最美丽的山脉。 使用perl使用perl一行程序: perl -pe 's/-\n//' file 开关: -i:就地编辑文件(如果提供扩展名,则进行备份) -p:为输入文件中的每一行创建while(){…;print}循环 -e:告诉perl在命令行上执行代码 有时您可能需要考虑CRLF,尤其是在使用较小的操作系统时(呵呵)。我尽量使东西便于携带 s/-

我有以下案文:

玛丽住在一个大房子里- 几乎是最漂亮的- 这是一座美丽的山- 尝试 如何将其转换为:

玛丽住在一个大城市,靠近这个国家最美丽的山脉。

使用perl

使用perl一行程序:

perl -pe 's/-\n//' file
开关

  • -i
    :就地编辑
    文件(如果提供扩展名,则进行备份)
  • -p
    :为输入文件中的每一行创建
    while(){…;print}
    循环
  • -e
    :告诉
    perl
    在命令行上执行代码
有时您可能需要考虑CRLF,尤其是在使用较小的操作系统时(呵呵)。我尽量使东西便于携带

s/-[\r\n]+//g

我把“+”放在那里,以防在连字符和文本的其余部分之间有一个额外的空行。

如果文本包含应该连字符的单词,您想怎么做?e、 g.“众所周知”或“诱杀装置”?你想把它限制在endofline的例子中。@tadman是什么阻止了我的一个例子出现在一行的末尾?这是无法自动完美完成的事情之一,但你可以通过自动化非常接近,并手动修复异常。@tadman当然,在这个简单的示例中,您可以手动修复异常,但对于长文档来说,这是不可行的。当然没有办法做到完美,但我有兴趣看到一个比
s/-\n/
更智能的解决方案;我想它可能对未来的访问者有用。
-I
也很棒,可以就地修改。只需确保在意外地将文件丢弃之前备份好文件。为
-i
添加了文档。