我有一个Perl脚本,它解析了从许多学区发送给我的数据。我增加了一所新学校,遇到了一个我从未遇到过的问题。当我执行$line = 时,它会删除整个文件,而不是一行。
如果我对文件运行file,它将返回UTF-8 Unicode text, with CRLF, CR line terminators。所有其他文件都返回ASCII text, with CRLF line terminators。我已经在dos2unix中运行了它,但是它仍然作为一个长字符串运行。当我用emacs编辑它时,它仍然为行尾显示^M。
如何将这些行尾转换为可用的行尾?
更新:供应商给我发送了另一个文件,文件有不同的行尾
我目前正在尝试在Org模式下设置一个Raku脚本。但是,Raku主要模式没有定义注释语法。是否有一种方法可以告诉Org注释标头参数使用什么注释语法作为标头参数?
例如,这个代码块
* This should be a comment
#+BEGIN_SRC raku :comments org
lorem ipsum
#+END_SRC
编译时,提示我没有定义的注释语法。作为参考,在Raku主要模式(官方模式)中,注释被正确地突出显示如下
# This is a comment
constant Str this = "is not.";
我坦率地承认,我对R非常陌生,所以我可能完全找错了方向来使用这个代码:
我有一些文本文件,它们只是在一天的时间内从程序中收集输出,每个文件一天。有时,但并非总是,程序会抛出错误。我正在尝试的是一个R脚本,它将把文本文件的特定部分导入到一个向量中,这样我就可以处理列出的错误。在这种情况下,错误后的文本行。所以如果我有:
Normal Stuff
[ERROR] Bad Error
Normal Stuff
Normal Stuff
[ERROR] Minor Error
Normal Stuff
我最终得到了向量
Bad Error, Minor Error
然而,虽然我一直在学习教程,但在数据
在尝试调试程序代码时,我遇到了以下情况:
(base) hsmyers@BigIron:~$ rlwrap -A raku
To exit type 'exit' or '^D'
> my regex N { <[A..G]> };
regex N { <[A..G]> }
> my %h = A => 1, B => 2;
{A => 1, B => 2}
> 'B' ∈ %h.keys
True
> my $m = 'B' ~~ / <N>
以下程序无法正确编译:
sub f(Int $a) { my Str $b = $a }
say f 42;
say f 'foo';
具体来说,第3行会导致编译错误(带有===SORRY!===错误消息);此错误发生在执行第2行之前,因此不会达到&f中的类型错配。
但是,确切地说,何时会发生此错误?我以为它发生在检查期间,但惊讶地注意到raku -c没有生成编译错误;它报告Syntax OK。
为了进一步了解这一点,我在上面的代码片段中添加了日志代码:
BEGIN note 'begin';
CHECK note 'check';
IN
sub a { my @c = 1, 2, 3, 4; return @c };
sub b { my $d = [ 1, 2, 3, 4 ]; return $d };
say a().WHAT; # (Array)
say b().WHAT; # (Array)
my @e = a();
my @f = b();
say @e; # [1 2 3 4]
say @e[1]; # 2
say @f; # [[1 2 3 4]]
say @f[1]; # (Any)
# valid raku code, no errors messages
这些子程序都返
在Ruby中,我可以用一个begin块组合一些代码行,如下所示:
x = begin
puts "Hi!"
a = 2
b = 3
a + b
end
puts x # 5
它立即被计算出来,它的值是块的最后一个值(这里是a + b) (Javascripters使用做了类似的事情)
在Raku有什么方法可以做到这一点?还有比以下更平滑的吗?
my $x = ({
say "Hi!";
my $a = 2;
my $b = 3;
$a + $b;
})();
say $x; # 5
我需要匹配一个从0到数字$n的数字范围,其中$n可以是1-40之间的任意随机数。
例如,如果$n = 16,则只需要严格匹配0-16之间的数值范围。
我试过m/([0-9]|[1-3][0-9]|40)/,但这与所有的0-40匹配。是否有一种方法可以使用regex来匹配0到$n?
代码片段附在上下文中。
$n = getNumber(); #getNumber() returns a random number from 1 to 40.
$answer = getAnswer(); #getAnswer() returns a user in
有一个固定长度的文件,在这些行之间没有换行符,但每行都是15个字符。
echo "John Doe Jane Doe Johny Doe " > /tmp/every_line_is_15_characters.txt
有没有办法把它分割成:
John Doe
Jane Roe
Johny Doe
(很明显,会有落后的空白)。
它可以用java、python等来完成,但是,在不使用重量级编程语言的情况下,将文件拆分成固定宽度行的最简单方法是什么呢?也许是哇什么的?
是否可以使用BBEDIT Grep命令(查找和替换功能)将两列的2行文本合并到一行中?
例如:
Ryan Muramatsu
Corporate Venturing Co-Lead at Tokio Marine
其结果应该是:
(Column1)Ryan Muramatsu (Column2)Corporate Venturing Co-Lead at Tokio Marine