linux命令使用笔记
shell中数组的定义和使用
1. 将某个目录下的文件存在一个数组内
allfiles=((ls ${indir}/*.txt))
2. 自定义数组
arr=(00 01 02 03 04 05 06 07)
3. 遍历数组元素
for elem in ${arr[@]}
do
conmand
...
done
4. 获取数组的长度
num_elem=${#arr[@]}
shell中的最大向右删除 在某些情况下,我们想去掉路径单独获取文件名,那么就会用到最大向右删除
inf="../haha/apple/2018.123.txt"
fnm=${inf##*/}
上述获取的
fnm
为2018.123.txt
5. 将一个文本文件中的全部行存入一个array
如果一个文本文件input.txt中的各行存在空格,如下:
# 2008 06 01 00 01 30.000 3110 103250.01.81
LYSPG 2008 06 01 00 01 34.200
LYSSG 2008 06 01 00 01 36.800
那么,
arr1=($(cat input.txt))
的元素是这样的[#, 2008, 06, 0, ...]
即shell解释器将空格当做元素的分割符,将文本中的所有元素作为array的元素加入array
- 那么,如何将带空格的各行文本存入array呢?修改
IFS
变量并未达到目标,因此只能采取“笨办法”了:通过循环,逐行赋值给array
# Algorithm 1
n=0
while read line1
do
lines[n]=$line1
let n++
done < input.txt# Algorithm 2
n=0
for line1 in `cat input.txt`
do
lines[n]=line1
let n++
done
bash使用
sed
输出指定行
objline=12
sed -n ''$objline'p' $inf
【linux命令使用笔记】使用
awk
来实现上述过程:awk -v nn=$objline '{if(NR==nn) print $0}'
推荐阅读
- 由浅入深理解AOP
- 【译】20个更有效地使用谷歌搜索的技巧
- mybatisplus如何在xml的连表查询中使用queryWrapper
- MybatisPlus|MybatisPlus LambdaQueryWrapper使用int默认值的坑及解决
- MybatisPlus使用queryWrapper如何实现复杂查询
- iOS中的Block
- Linux下面如何查看tomcat已经使用多少线程
- 使用composer自动加载类文件
- Beego打包部署到Linux
- android|android studio中ndk的使用