遇到的问题及解决方法 shell

7666661.赋值一个变量为一个十六进制的随机数
简单的随机数 $RANDOM
卡在格式化为十六进制
格式化首先应该想到printf

printf -w 等宽
priintf -s
a=$(printf “%x” $RANDOM)在这里插入图片描述

2.抽取文本指定行数据并替换该行的首字段。
最初的想法:因为首字段数量不一致 想到找第二个字段的下标,接着用切片方式获取首字段后的内容。
newline=replacechar+line[line.index(line.split()[1])-1:]
newlinelist.append(newline)
更改:直接把首字段替换
line.split()[0]=replacechar
newline=" ".join(line.split())
newlinelist.append(newline)

3.notepad++
正则表达式查找相应的数据
换行符:\r\n Windows \n Linux
找数字: \d \d+ [0,9]{2} [0,9]{3+}
删除单行数据快捷键:Ctrl+L
关闭单个文本快捷键:Ctrl+W

4.遍历文本每一行信息,并·添加其他内容以固定格式重定向另一文件。
问题:引用for循环外的变量失败。
解决:符号问题

#!/bin/bash
ArrayList=(100 200 300 400 500 600 700)
for i in $(seq 0 6)
do
	num=${ArrayList[$i]}
	for file in $path"/"*".txt"
	do
		while read line
		do
			echo $line | awk '{printf "%s %s %d %d %s","'"$num"'",$1,$2,"0x67","Content" }' | tee -a
			##内容打印在屏幕上  最初引用变量num 直接输入了$num,并不能识别。
			 echo $line | awk '{printf "%s %s %d %d %s","'"$num"'",$1,$2,"0x67","Content" }' >> newfile
		done<$file
	done
done

5.打印字符串和变量结合的数据
问题:变量内容并不能识别
解决:符号问题

#! /bin/bash
str=verifystring
echo D:/folder/$str/balabala 
###打印内容:D:/folder/$str/balabala
newvar='D:/folder/'$str'/balabala '
echo $newvar 
###打印内容:D:/folder/verifystring/balabala

6.函数返回的值可以看成是字符串,再分别赋给不同变量截取后的值。
在这里插入图片描述
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值