开发者社区> 问答> 正文

如何使用bash脚本从文本文件中选择特定范围的行

我想选择一个行范围,每9行开始一个新范围。在下一个示例中,新范围每8个位置开始:第2、10、18行是标题,第3、11和19行是注释,第4、12和19行是路径...

在插入数据库后,需要对此参数化:

例:

Line1
Line2       [logs-app1]
Line3                comment = Logs
Line4                path = /data/logs/
Line5                valid users = "Access group1"
Line6                read only = yes
Line7                writable = no
Line8                browseable = no
Line9
Line10      [logs-app2]
Line11               comment = Logs
Line12               path = /data/logs/
Line13               valid users = "Access group2"
Line14               read only = yes
Line15               writable = no
Line16               browseable = no
Line17
Line18      [logs-app3]
Line19               comment = Logs
Line20               path = /data/logs/
Line21               valid users = "Access group3"
Line22               read only = yes
Line23               writable = no
Line24               browseable = no
Line25

如何使用bash脚本从文本文件中选择特定范围的行?

感谢@glenn jackman的帮助。我的目标是将所有变量插入数据库后的oracle Schema中。这样做的最佳方法是什么?

get_range() {
    local -i i=$1
    local start=$((8*(i-1)+1)) end=$((8*i))
    sed -n "$start,$end p; $end q" file.txt
}

for i in $(seq 1 $END); do get_range ($i); done ?????


while
    read
    IFS=  read -r app
    IFS== read -r _ comment
    IFS== read -r _ path
    IFS== read -r _ users
    IFS== read -r _ read_only
    IFS== read -r _ writable
    IFS== read -r _ browsable
do
    echo "var1: $app"
    echo "var2: $comment"
    echo "var3: $path"
    echo "var4: $users"
    echo "var5: $read_only"
    echo "var6: $writable"
    echo "var7: $browsable"
done < file.txt

展开
收起
祖安文状元 2020-01-05 18:08:35 669 0
1 条回答
写回答
取消 提交回答
  • 精于基础,广于工具,熟于业务。

    ①sed命令:sed -n “3p” filename #输出文件的第3行 ②awk命令:

    2020-01-06 09:29:50
    赞同 展开评论 打赏
问答标签:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
Shell 脚本速查手册 立即下载
Python 脚本速查手册 立即下载
低代码开发师(初级)实战教程 立即下载

相关实验场景

更多