我正试图将这段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