我倾向于使用perl -e选项在shell脚本(如bash)中添加Perl脚本,而不创建Perl脚本文件.
perl -e '
while (<>) {
print;
}' < file
Run Code Online (Sandbox Code Playgroud)
是否有类似的方式为R做这个?我想在bash脚本中编写R脚本,但不创建R脚本文件.
一种方法是使用
R --vanilla <<RSCRIPT
a <- "hello\n"
cat(a)
RSCRIPT
Run Code Online (Sandbox Code Playgroud)
与perl -e不同,当使用$时,必须在引用表的列时添加反斜杠.在perl -e中,我们不需要使用\ $来引用perl变量.
我想用重定向和/或管道创建一个bash字符串命令,并使用它来显示命令字符串或执行命令字符串.没有重定向或管道的简单命令可以工作,但是带有重定向或管道的一串命令不能.例如,
command="echo 1"
$command
echo "$command"
Run Code Online (Sandbox Code Playgroud)
会显示
1
echo 1
Run Code Online (Sandbox Code Playgroud)
然而,
command="echo 1 | cat"
$command
echo "$command"
Run Code Online (Sandbox Code Playgroud)
会显示
1 | cat
echo 1 | cat
Run Code Online (Sandbox Code Playgroud)
但我想要
1
echo 1 | cat
Run Code Online (Sandbox Code Playgroud)
同样对于重定向,
command="echo 1 | cat > 1.out"
$command
echo "$command"
Run Code Online (Sandbox Code Playgroud)
会显示
1 | cat > 1.out
echo 1 | cat > 1.out
Run Code Online (Sandbox Code Playgroud)
但我想要
echo 1 | cat > 1.out
Run Code Online (Sandbox Code Playgroud)
使用名为"1.out"的新文件,其中包含内容1.
有没有办法实现我想要的?
我会写两行来设置,比如说,有些东西.这里,例如,我想将uint16_t值x中的高8位设置为y的低8位.
uint16_t y = 0x0034;
uint16_t x = 0xFF12;
Run Code Online (Sandbox Code Playgroud)
我想要x:
assert(x == 0x3412);
Run Code Online (Sandbox Code Playgroud)
我倾向于写这两行:
x &= 0x00FF;
x |= (y << 8);
Run Code Online (Sandbox Code Playgroud)
有没有一种方法可以在不使用宏的情况下编写单行来实现相同的效果?
我想在R中打印一个文件的头.我知道如何使用R支持的read.table和其他输入方法.我只想知道读取文件中的unix命令cat或head的R替代方法并打印一些他们.
谢谢,
SangChul