我有這個屬性檔案,其中可以包含盡可能多的“spark-worker”字串:
[master]
spark-master ansible_ssh_host=ec2-3-236-23-XXX.compute-1.amazonaws.com
[worker]
spark-worker ansible_ssh_host=ec2-34-204-206-XXX.compute-1.amazonaws.com
spark-worker ansible_ssh_host=ec2-3-238-204-XXX.compute-1.amazonaws.com
.
.
spark-worker ansible_ssh_host=ec2-3-238-204-XXX.compute-1.amazonaws.com
[spark_cluster:children]
master
worker
我想在每個字串“spark-worker”之后添加一個數字,所以結果是:
[master]
spark-master ansible_ssh_host=ec2-3-236-23-XXX.compute-1.amazonaws.com
[worker]
spark-worker-1 ansible_ssh_host=ec2-34-204-206-XXX.compute-1.amazonaws.com
spark-worker-2 ansible_ssh_host=ec2-3-238-204-XXX.compute-1.amazonaws.com
.
.
spark-worker-n ansible_ssh_host=ec2-3-238-204-XXX.compute-1.amazonaws.com
[spark_cluster:children]
master
worker
最好的方式是什么?
uj5u.com熱心網友回復:
使用sed的bash腳本
#!/usr/bin/env bash
n=1
while read -r line; do
sed -i.bak "s/spark-worker/&-$n/" <<< "$line"
if [[ "$line" =~ "spark-worker" ]]; then
n=$(( n 1 ))
fi
done < input_file
或作為一個班輪
$ n=1; while read -r line; do sed "s/spark-worker/&-$n/" <<< "$line"; if [[ "$line" =~ "spark-worker" ]]; then n=$(( n 1 )); fi; done < input_file
[master]
spark-master ansible_ssh_host=ec2-3-236-23-XXX.compute-1.amazonaws.com
[worker]
spark-worker-1 ansible_ssh_host=ec2-34-204-206-XXX.compute-1.amazonaws.com
spark-worker-2 ansible_ssh_host=ec2-3-238-204-XXX.compute-1.amazonaws.com
.
.
spark-worker-3 ansible_ssh_host=ec2-3-238-204-XXX.compute-1.amazonaws.com
[spark_cluster:children]
master
worker
或使用 awk
awk -v work="spark-worker" '$0~work{n ; gsub(work,work"-"n)}1' input_file
[master]
spark-master ansible_ssh_host=ec2-3-236-23-XXX.compute-1.amazonaws.com
[worker]
spark-worker-1 ansible_ssh_host=ec2-34-204-206-XXX.compute-1.amazonaws.com
spark-worker-2 ansible_ssh_host=ec2-3-238-204-XXX.compute-1.amazonaws.com
.
.
spark-worker-3 ansible_ssh_host=ec2-3-238-204-XXX.compute-1.amazonaws.com
[spark_cluster:children]
master
worker
uj5u.com熱心網友回復:
一個awk一個班輪:
awk '$1 == "spark-worker" { $1 = $1 "-" c } 1' file
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/408873.html
標籤:
