R 的粘贴功能相当于 BASH?
R's paste function equivalent in BASH?
我正在尝试将这段 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
假设一个像结构的列,可以这样做:
假设 table 有两列保存在文本文件中
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 }' "test${var}"
done
输出:
1
2
3
要读取两列,awk
代码行应为
awk '{print }' "test${var}"
或者,因为 OP 说文件只有两列,
awk '{print [=13=]}' "test${var}"
文件内容为:
1 a
2 b
3 c
我正在尝试将这段 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
假设一个像结构的列,可以这样做: 假设 table 有两列保存在文本文件中
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 }' "test${var}"
done
输出:
1
2
3
要读取两列,awk
代码行应为
awk '{print }' "test${var}"
或者,因为 OP 说文件只有两列,
awk '{print [=13=]}' "test${var}"
文件内容为:
1 a
2 b
3 c