我一直试图让head
实用程序显示除标准输入的最后一行之外的所有内容.我需要的实际代码是类似的东西cat myfile.txt | head -n $(($(wc -l)-1))
.但那没用.我在达尔文/ OS X上做这个,它没有head -n -1
那个可以获得类似输出的漂亮语义.
这些变化都不起作用.
cat myfile.txt | head -n $(wc -l | sed -E -e 's/\s//g')
echo "hello" | head -n $(wc -l | sed -E -e 's/\s//g')
Run Code Online (Sandbox Code Playgroud)
我测试了更多的变化,特别是发现这个工作:
cat <<EOF | echo $(($(wc -l)-1))
>Hola
>Raul
>Como Esta
>Bueno?
>EOF
3
Run Code Online (Sandbox Code Playgroud)
这里的东西也比较简单.
echo "hello world" | echo $(($(wc -w)+10))
Run Code Online (Sandbox Code Playgroud)
这个可以理解地给我一个非法的行计数错误.但它至少告诉我head
程序在将内容传递给子shell /命令替换之前没有消耗标准输入,这是一种远程可能性,但我还是想排除它.
echo "hello" | head -n $(cat && echo 1)
Run Code Online (Sandbox Code Playgroud)
如何解释的行为head
,并 …
我知道:qa
关闭所有缓冲区和窗口并退出vim.很明显,我可以使用:q
退出给定选项卡中的单个窗口/拆分.但考虑一下我在当前标签中有三个窗口以及一堆相邻的打开标签的情况.我想关闭当前选项卡中的三个窗口,但不要退出vim或其他相邻选项卡.
我该怎么做?我浏览了vim帮助文件,但似乎没有直接的选择.我想可以使用vimscript获得这样的功能,但我想在得出结论之前确定它是唯一的选择.
如果vim不直接支持它并且某人已经非常出色地为它编写插件,我很想知道它.
Python 2.7中的代码结果让我感到矛盾.该is
运营商应该与对象的身份工作,所以是id
.但是当我查看用户定义的方法时,他们的结果会有所不同.这是为什么?
py-mach >>class Hello(object):
... def hello():
... pass
...
py-mach >>Hello.hello is Hello.hello
False
py-mach >>id(Hello.hello) - id(Hello.hello)
0
Run Code Online (Sandbox Code Playgroud)
我从Python数据模型的描述中发现以下摘录有些用处.但它并没有真正使一切清楚.id
如果每次重新构造用户定义的方法对象,为什么函数返回相同的整数?
获取类的属性(可能通过该类的实例),如果该属性是用户定义的函数对象,未绑定的用户定义的方法对象或类方法对象,则可以创建用户定义的方法对象.当属性是用户定义的方法对象时,仅当从中检索它的类与存储在原始方法对象中的类相同或派生类时,才会创建新的方法对象; 否则,原始方法对象按原样使用.
我在我的主目录的两个文件.phpsh
,并.php_history
使用他们的名字我想测试路径名的扩展以及它如何影响在bash关联数组.我遇到的结果似乎很奇怪,我无法解释它们.我在这里尝试了很多变化.
>my_array_filename_var=(".phpsh"=10 ".php_history" =20)
>echo ${my_array_filename_var[.phpsh]}
ERROR
>echo "${my_array_filename_var[.phpsh]}"
ERROR
# This one below understandably doesn't work. But I was pulling my hair out.
>echo "${my_array_filename_var[".phpsh"]}"
ERROR
echo "${my_array_filename_var[\".phpsh\"]}"
ERROR
>echo "${my_array_filename_var[.phpsh]}"
ERROR
>echo "${my_array_filename_var[phpsh]}"
.phpsh=10
>echo "${my_array_filename_var[php_history]}"
.phpsh=10
>echo "${my_array_filename_var[\.php_history]}"
ERROR
Run Code Online (Sandbox Code Playgroud)
当ERROR
令牌代表
bash: .phpsh: syntax error: operand expected (error token is ".phpsh")
Run Code Online (Sandbox Code Playgroud)
是否有一些规则说我的关键数组的键中没有点字符?bash中的路径名扩展如何发挥作用?
我看到,在这条线signal.h
在/usr/include/sys/
我的Mac上.基于它用作函数的返回类型signal
,我希望SIG_ERR
是一个指向函数的指针,该函数接受整数输入并返回void.但宏扩展SIG_ERR
似乎从函数指针类型中减去1,我发现这很奇怪.C如何解析它?
#define SIG_ERR ((void (*)(int))-1)
Run Code Online (Sandbox Code Playgroud)