这个
STR="Hello\nWorld"
echo $STR
Run Code Online (Sandbox Code Playgroud)
产生输出
Hello\nWorld
Run Code Online (Sandbox Code Playgroud)
代替
Hello
World
Run Code Online (Sandbox Code Playgroud)
如何在字符串中添加换行符?
注意:这个问题不是关于回声.
我知道echo -e,但我正在寻找一种解决方案,允许将一个字符串(包括换行符)作为参数传递给其他命令,这些命令没有类似的选项来解释\n为换行符.
我想在我没有root访问权限的共享服务器上安装perl模块.我怎样才能做到这一点?它们似乎也有旧版本的CPAN(它在运行命令时会抱怨),是否可以更新我帐户中使用的CPAN命令而无需root访问权限?
我知道DateTimePerl模块,以及许多DateTime::Format::解析特定日期/时间格式的模块.但是,考虑到日期/时间字符串的一些示例,我如何计算(在编码/设计时,而不是在运行时)我应该使用哪个特定模块?
例如,我想解析字符串,如: October 28, 2011 9:00 PM PDT
是否有一个最常见的日期/时间格式的列表,我可以查看它,找到哪个是最合适的模块?
我也知道一些模块试图在运行时"猜测"每个给定字符串的格式并尽力而为.但是,对于敏感应用程序,我想在设计应用程序时首先确定(尽可能严格)格式,然后使用一个模块,如果字符串与指定的格式不匹配,它将发出警告.
我该怎么办呢?
如果我用Python写:
data = {'n': 3, 'k': 3.141594, 'p': {'a': 7, 'b': 8}}
print('{n}, {k:.2f}, {p[a]}, {p[b]}'.format(**data))
del data['k']
data['p']['b'] = None
print('{n}, {k:.2f}, {p[a]}, {p[b]}'.format(**data))
Run Code Online (Sandbox Code Playgroud)
我明白了:
3, 3.14, 7, 8
Traceback (most recent call last):
File "./funky.py", line 186, in <module>
print('{n}, {k:.2f}, {p[a]}, {p[b]}'.format(**data))
KeyError: 'k'
Run Code Online (Sandbox Code Playgroud)
而不是错误消息,我如何让Python更优雅地格式化None和不存在的字段?
举个例子,我想在输出中看到更像:
3, 3.14, 7, 8
3, ~, 7, ~
Run Code Online (Sandbox Code Playgroud)
当然,理想情况下,我希望能够指定使用的字符串而不是那些缺少的值.
就是这样了.如何使用AppleScript写入文本文件?
我试过谷歌搜索,但答案似乎已经岁了几年,我不确定这几天应该是什么样的首选成语.
假设我已经在coq中证明了一些定理,后来我想在另一个定理的证明中作为假设引入它.有简洁的方法吗?
当我想要通过案例进行证明时,通常会出现对此的需求.而且我发现这样做的一种方法是对assert定理的陈述,然后立即证明它,但这看起来有点麻烦.例如,我倾向于写下这样的东西:
Require Import Arith.EqNat.
Definition Decide P := P \/ ~P.
Theorem decide_eq_nat: forall x y: nat, Decide (x = y).
Proof.
intros x y. remember (beq_nat x y) as b eqn:E. destruct b.
left. apply beq_nat_eq. assumption.
right. apply beq_nat_false. symmetry. assumption. Qed.
Theorem silly: forall x y: nat, x = y \/ x <> y.
Proof.
intros x y.
assert (Decide (x = y)) as [E|N] by apply decide_eq_nat.
left. assumption.
right. assumption. Qed.
Run Code Online (Sandbox Code Playgroud)
但有没有比输入整个 …
对于我的应用程序,我需要在Coq中使用和推理有限映射.谷歌搜索我发现FMapAVL似乎完全符合我的需要.问题是文档很少,我还没弄清楚我应该如何使用它.
作为一个简单的例子,考虑使用对列表的有限映射的以下愚蠢的实现.
Require Export Bool.
Require Export List.
Require Export Arith.EqNat.
Definition map_nat_nat: Type := list (nat * nat).
Fixpoint find (k: nat) (m: map_nat_nat) :=
match m with
| nil => None
| kv :: m' => if beq_nat (fst kv) k
then Some (snd kv)
else find k m'
end.
Notation "x |-> y" := (pair x y) (at level 60, no associativity).
Notation "[ ]" := nil.
Notation "[ p , .. , r ]" := (cons …Run Code Online (Sandbox Code Playgroud) 我真的不明白为什么下面这段perl代码
#!/usr/bin/perl -w
use strict;
use warnings;
strange($_) for qw(a b c);
sub strange {
open FILE, '<', 'some_file.txt' or die;
while (<FILE>) { } # this is line 10
close FILE;
}
Run Code Online (Sandbox Code Playgroud)
抛出以下错误
Modification of a read-only value attempted at ./bug.pl line 10.
Run Code Online (Sandbox Code Playgroud)
这是一个错误吗?或者我应该知道魔术/隐含变量的用法$_?
根据Jekyll的前端文档,date变量可用于指定发布帖子的日期和时间.Jekyll期待的日期格式是什么?我见过的一些例子表明,例如:
date: 2010-09-15 14:40:45
Run Code Online (Sandbox Code Playgroud)
但是否也可以包含时区信息?Jekyll如何解析这个字符串?
是否有一种快速简便的方法来查找数组,找到满足某些测试的元素并从原始数组中删除它们?
比如我想
@a = (1, 7, 6, 3, 8, 4);
@b = grep_filter { $_ > 5 } @a;
# now @b = (7, 6, 8)
# and @a = (1, 3, 4)
Run Code Online (Sandbox Code Playgroud)
换句话说,我想将一个数组拆分成两个数组:匹配的数组和不符合某个条件的数组.
从我理解阅读文档的内容来看Math::BigFloat,以下内容应该是将数字四舍五入的代码,但它似乎不起作用.
#!/usr/bin/perl
use strict;
use warnings;
use Math::BigFloat;
my $x = Math::BigFloat->new('2.3');
$x->ffround(0, '+inf');
print "$x\n"; # -> 2
Run Code Online (Sandbox Code Playgroud)
我应该怎么做才能始终将数字向上舍入,例如,在此示例中将数字3作为输出.
perl ×5
coq ×2
datetime ×2
applescript ×1
arrays ×1
cpan ×1
dictionary ×1
io ×1
jekyll ×1
missing-data ×1
parsing ×1
python ×1
rounding ×1
sh ×1