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.函数返回的值可以看成是字符串,再分别赋给不同变量截取后的值。