一、第一行删掉最后一个字母 第二行删掉倒数第二个字符第n行就删掉倒数第n个字母,有什么方法可实现?
ABCDEFG
ABCDEFG
ABCDEFG
ABCDEFG
ABCDEFG
awk解题:
awk 'BEGIN{FS=OFS=""}{if(NF>=NR)$(NF-NR+1)="";print}' txt
分析:
二、正则如何取最后一个括号里的内容。 (您好)我是中国人(是的)
#1
(?<=()[\u4e00-\u9fa5]{
2}(?!.*[\u4e00-\u9fa5]{
2})(?=))
#2
echo '(您好)我是中国人(是的)啊啊啊啊' | grep -Po '.*(\K[^)]+'
#3
sed -r 's#.*((.*?))$.*#\1#' zhongwen.txt
三、现在要通过shell实现第一天打印00,01,02,03,04,第二天打印05,06,07,08,09,…第十天打印45,46,47,48,49,然后第十一天重新从00开始。。一直这样循环。
test.sh内容:
# seq -w 0 49 | xargs -n 5 > 1.txt
#!/bin/bash
#1.txt 内容为 seq -w 0 49 | xargs -n 5
currPath=/root/shellDir/program/testFile/1.txt
lineNum=`seq -w 0 49 | xargs -n 5 | wc -l`
IFS=$'\n'
#set -x
indexNum=0
for i in `cat $currPath`
do
#echo $i
arrayA[$indexNum]=$i
let indexNum+=1
done
#echo ${arrayA[*]}
count=1
while [ 1 ]
do
echo ${
arrayA[$((count-1))]}
let count+=1
sleep 1s
if [ $count -gt 10 ];then
count=1
echo -e "\n\n num reset...."
fi
done
运行结果
其他带哥的思路写法:
1、
2、
用定时任务加一个临时文件,文件里写满00到49,定时任务每次从里面读5行,顺便把读读到的5行去掉并追加到文件尾部
四、jot指令
jot源码包:
https://launchpad.net/ubuntu/+archive/primary/+sourcefiles/athena-jot/9.0-7/athena-jot_9.0.orig.tar.gz
jot跟seq作用差不多,就是有的地方更方便
上面的图可写成:
比seq扩展出更多的东西,按顺序列出字母
等差序列
从-1到1,平均分成11份
五、如何根据‘-’前面的数字,从小到大排序
1-aa
2-sa
3-aad
41-aac
55-qa
61-aa
7-qa
8-aa
9-aa
12-bb
15-vv
``
解法1 sort:
```shell
sort -t"-" -k1 -n 2.txt
解法2 awk: