gpt4 book ai didi

linux - 将txt行放入变量中,除以分隔符检查并重写txt发送命令

转载 作者:太空宇宙 更新时间:2023-11-04 05:19:08 25 4
gpt4 key购买 nike

我搜索了各种示例和解决方案,但现在还无法使用。

这就是我所拥有的:foo.txt:

var1:var2:var3:var4
var1:var2:var3:var4
var1:var2:var3:var4

等等

我需要一个可以访问foo.txt的脚本,打开它并获取var3。如果 var3 小于 25,输出
'echo 命令用户密码 sendammount $var4 sendto $var2'
然后在txt中提高 var3 by 1,保存它并转到下一行做同样的事情,如果var3已经是25,它只是跳过该行什么都不做并转到下一行,一旦最后一行填满,脚本关闭(它应该每小时运行一次,但我读过它可以用watch来完成 - n 5 foo.sh )。

var1=$(echo $STR | cut -f1 -d-)
var2=$(echo $STR | cut -f2 -d-)

它的作用:

ABCDE-123456
var1:ABCDE
var2:123456

我不知道如何在 var1=$(echo $STR | cut -f1 -d-) 表达式中编辑分隔符?

我还可以通过删除 echo 来设置变量吗?我试图查找编辑部分,但直到那里我才无法让我的逻辑工作..

最佳答案

让我知道我赢了多少。

#!/bin/bash
function usage(){
echo "Usage: $0 <input_file>"
}

# Ensure we have an input file
if [ "$#" -lt 1 ]; then
usage
exit 1
elif [ "$1" = "-h" -o "$1" = "-?" -o "$1" = "--help" ]; then
usage
exit 0
fi

input_file="$1"

# Get number of lines in file
nLines=$( wc -l "${input_file}" | cut -d' ' -f1 )

# Loop over each line in the file
for (( ii=1; ii<=nLines; ii++ ));do
# Extract the line
line=$( sed -n "${ii}p" "${input_file}" )

# Parse by ':'
var1=$( echo "${line}" | cut -d: -f1 )
var2=$( echo "${line}" | cut -d: -f2 )
var3=$( echo "${line}" | cut -d: -f3 )
var4=$( echo "${line}" | cut -d: -f4 )

# Parse var3 into whole part and decimal part
whole=$( echo ${var3} | cut -d. -f1 )
decimal=$( echo ${var3} | cut -d. -f2 )

# If the whole part is less than 25...
if [ ${whole} -lt 25 ]; then
# Print desired command
echo command user password sendammount $var4 sendto $var2
# Increment whole part
(( whole++ ))
# Write back to original file based on whether there was a decimal part
if [ -z "${decimal}" ]; then
sed -i "${ii}s/^.*$/${var1}:${var2}:${whole}:${var4}/" "${input_file}"
else
sed -i "${ii}s/^.*$/${var1}:${var2}:${whole}.${decimal}:${var4}/" "${input_file}"
fi
fi
done

关于linux - 将txt行放入变量中,除以分隔符检查并重写txt发送命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44448521/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com