R的粘贴函数等效于BASH?

  • 本文关键字:BASH 函数 r bash paste
  • 更新时间 :
  • 英文 :


我正试图将这段R代码翻译成bash:

year <- 2010
emmissions <- paste("Emmision table from ",year, sep="")
em_table <- read.table(emmissions, head=F, as.is=T)
for (i in 1:nrow(em_table)) {
print(em_table[i,1])
}

但不知道如何将粘贴函数转换为将字符串与变量连接起来。预期的结果是这个脚本被翻译成bash代码。

在for循环中使用echo "Emmision table from ${year}",如下所示:

for var in 2001 2003 2004; 
do 
echo "Emission table ${var}"
done

根据OP的请求更新:

对于bash中的序列生成,可以执行以下操作:for i in {1..5}用于1到5的序列,或者{0..20..4}用于从0到20的序列中的4步长

假设是柱状结构,可以这样做:假设一个表有两列保存在一个文本文件中

col1 col2
1 2
3 4
5 6
while read col1 col2
do
echo "Col1 : $col1"
echo "Col2 : $col2"
done < table.txt

已经有了一个公认的答案,但这里有一个awk解决方案
只使用一个名为"test2020"的文件进行了测试。

for var in 2020;
do
awk '{print $1}' "test${var}"
done

输出:

1
2
3

要读取两列,awk代码行将为

awk '{print $1 $2}' "test${var}"

或者,由于OP说文件只有两列,

awk '{print $0}' "test${var}"

文件内容为:

1 a
2 b
3 c

最新更新