从bash脚本中的文件中读取行组

时间:2017-04-13 15:49:33

标签: bash shell

我希望能够从中读取一组行 bash脚本中的文件。以下代码打印第一个 两次文件的行

   #!/bin/bash
   filename=$1
   read -r line < "$filename"
   echo $line
   read -r line < "$filename"
   echo $line

而我想打印第二行。 以下代码打印文件的所有行

   #!/bin/bash
   filename=$1
   while read -r line
   do
      echo $line
   done < "$filename"

但是在一个更复杂的脚本中 我不想插入复杂的逻辑来完成不同的任务 同时被迫从一个文件中读取每一行。 有人可以建议一种方法来做像

这样的事情
   # Read in a line from a file.
   # Do something with that line.
   #
   # Read in the next 5 lines from the file.
   # Do something different with those lines.
   #
   # etc.

感谢。

1 个答案:

答案 0 :(得分:2)

将整个代码包装在从文件重定向的块中:

na.vector <- df$Q17a_17 * df$Q17a_19 * df$Q17a_23
na.vector[!is.na(na.vector)] <- 0
num.vector <- as.numeric(df$Q17a_17 | df$Q17a_19 | df$Q17a_23)
df$new_column <- na.vector + num.vector
df <- df[ , -which(names(df) %in% c("Q17a_17", "Q17a_19", "Q17a_23"))]