Bash——awk命令和sed命令

cat train.txt | awk '$1<163481 {print $1 "." $2}' > target.txt

    该命令将train.txt中的每一行以"."为分隔符划分为2段,然后选取第一段小于163481的行,输出到指定文件target.txt中。

awk 'condition {print ...}'


 

  val.txt每行为XXX.jpg..,希望删除最后连个小数点:

sed -i 's/\.\.//g' val.txt

    sed命令行格式为:

sed [-nefri] [动作] 输入文本            

    -i:直接修改文件内容,而不是由屏幕输出

    -n:只有经过sed特殊处理的那行才会输出

    小数点.需要使用转移符\,因为在正则表达式里,.表示任意一个字符,*表示重复,.*表示任意一串字符


 

   train.txt包含了所有训练图片名称,却发现没有给标签,本来希望有对指定行进行替换的命令,但是sed 's///g'好像没有制定某些行的参数,后来发现sed的function有打印p这个参数,下列语句可以方便地列出train.txt的第1-6行:

cat train.txt | sed -n '1,6p'
    所以想到用下列语句分别对两类给标签,重定向到两个文件,然后合并,不过类数很多时这个方法好想不适用:
cat train.txt | sed -n '1,68580p' | sed 's/jpg/jpg 0/g'


猜你喜欢

转载自blog.csdn.net/chenxjhit/article/details/80007372
今日推荐