linux - 如何使用 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 协调模式中插入后的所有变量。为了做到这一点,最好的方法是什么?
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
解决方案
您可以这样做以获得第n行范围:
$ get_range() {
local -i i=$1
local start=$((8*(i-1)+1)) end=$((8*i))
sed -n "$start,$end p; $end q" file
}
$ get_range 2
[logs-app2]
comment = Logs
path = /data/logs/
valid users = "Access group2"
read only = yes
writable = no
browseable = no
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
推荐阅读
- python - 多处理中未调用函数
- interface - 一般来说,协议和接口有什么区别?
- vue.js - Nuxt fetch 中的 Vuex 动作“不是函数”
- node.js - Cloud Functions: How to handle .then() for task accomplished or not accomplished?
- string - Delete common values from string variables using shell script
- c - 如果在释放内存之前将指针设置为 NULL 会发生什么?
- java - 如何有效地解析每次演变的 Rest Api 响应
- android - 如何移动 ImageView?
- node.js - 检查文件夹中是否可用后访问文件
- python - 从文本和数字数据字典创建网络 - 训练 GNN