Linux Bash awk 提取文件(linux awk取第一行)

admin3年前云主机21

在一个文件A.txt中找用到图片的名称(SOURCE_FILE ),见下文!然后按照NAV_PROG_DETAIL_FRAME.png"..\nav_img_8888.i"
FORMAT = "C"

[IMAGE_CONFIG = t_g_nav_frame_bk_bmp]
CONFIG_VARIABLE_NAME = "t_g_nav_frame_bk_bmp"
IMPLEMENT_FILE        = "NAV_IMG"
SOURCE_FILE           = "NAV_PROG_DETAIL_FRAME.png"

MSG_REPORT            = 0
COMPRESSED = 1

[IMAGE_CONFIG = t_g_nav_hlt_bar_bmp]
CONFIG_VARIABLE_NAME = "t_g_nav_hlt_bar_bmp"
IMPLEMENT_FILE        = "NAV_IMG"
SOURCE_FILE           = "NAV_CH_LST_HT.bmp"

COMPRESSED = 1
、、、、、、

首先我想用脚本把A.txt中用到的所有图片名都筛选出来,这样我选择了AWK来实现,由于当时不熟悉就分了三步:

一、 $ awk '/SOURCE_FILE /{print}' A.txt

解释:显示文本文件A.txt 匹配(含有)字符串"SOURCE_FILE"的所有行
结果:

SOURCE_FILE            = "NAV_PROG_DETAIL_FRAME.png"
SOURCE_FILE           = "NAV_CH_FRAME.png"
SOURCE_FILE           = "NAV_CH_LST_HT.bmp"
、、、、、、

高兴啊,终于把图片名字搞出来了。不过我现在只需要NAV_PROG_DETAIL_FRAME.png"NAV_PROG_DETAIL_FRAME.png"提取出来,这里边$3表示域的意思。还多出了一些引号,因此我就着手把引号去掉,学习了半天,找到了一个方法 $ awk -F "[ \" \" ]" '{print $2}'    A.txt 可以提取引号中的内容,这里边大功臣可是 "[ \" \" ]" 这个啊,放括弧里边的正是两个引号!   \" 肯定是匹配引号呗!

结果:

NAV_PROG_DETAIL_FRAME.png"[ \" \" ]" '{print $2}'    txt2.txt   >txt3.txt

好啦,接下来是不是要用这个txt3.txt来找到相应的图片呢?开始吧,我用bash编写脚本,命令:$ vi FILE 来创建一个名为:FILE的文档。假设我文件都放在 /opt/test/下,输入以下内容:

##############################################################

#FILE_NAME:FILE

#AUTHOR:chenfeng

#EMAIL:chenfeng10000@126

######################################################

#!/bin/sh
clear
i=1
#j=NULL

mkdir /opt/test/BMP
cd /opt/test

#计算这个txt3里边共有多少行,刚才提取的图片名称在txt3中试一行一行存在的!别问我为什么,只能怪#awk太强大!
length=`awk 'END{print NR}'   /opt/test/txt3.txt`
while (( $i <= $length ))

#下来就是把txt3中一行一行的名字拿出来赋值给choice。
do
    choice=`awk "{if ( NR == $i ) print }" /opt/test/txt3.txt`
   # echo $choice
   # echo "$choice"
   # if ($choice != $j)
   # then
             cp /opt/test/Res/$choice ./BMP     #这句就是Copy文件啦
   # else
   # echo "No such file!"
   # fi
    i=`expr $i + 1`                                      #这句就是一行一行的增加
done
#############################################################

编辑好后,给FILE加上可运行的权限 就可以了!

$chmod +x FILE 或者$chmod -R 777 FILE

然后 $ source FILE 就OK啦!《Linux Bash awk 提取文件(linux awk取第一行)》来自互联网同行内容,若有侵权,请联系我们删除!

免责声明:本文内容来自用户上传并发布,站点仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。请核实广告和内容真实性,谨慎使用。

相关文章

显卡GPU服务器常见相关问题?新加坡GPU服务器配置和报价是多少?

显卡GPU服务器常见相关问题?Q:什么是显卡GPU服务器?A:显卡GPU服务器是带显卡功能的服务器,可以在服务器上进行图形处理。Q:显卡GPU服务器是否可以挂游戏?A:可以,可能部分游戏不兼容,可以咨...

美国服务器有哪些种类(美国服务器类型大揭秘:种类全解析!)

一、独立服务器独立服务器指一台完整的服务器硬件系统,由单独的操作系统、硬件和网络连接组成。这种服务器完全属于客户所有,掌握着对服务器硬件和网络资源的完全控制权。对于需要高性能和自主控制权的业务,独立服...

“香港服务器的地域影响:SEO排名是否受影响?”

在全球互联网时代,服务器的地理位置对于网站的SEO排名有着重要的影响。香港,作为全球交通、贸易、金融中心之一,其服务器地位备受关注。所以,本文将从四个方面进行详细的阐述:香港服务器的地理位置、香港的网...

宝塔忘记密码

如何处理宝塔忘记密码问题问题背景宝塔是一款优秀的服务器面板,普及度很高,并且提供了很多实用的功能。但是,有时候我们会因为种种原因忘记了登录密码,该怎么办呢?下面就来介绍几种处理方法。方法一:找回宝塔密...

云游戏平台哪个好

云游戏平台哪个好?随着互联网技术的不断发展,许多娱乐活动都可以通过云平台来实现,其中游戏是最受欢迎的一项。云游戏平台为玩家提供了一个无需下载游戏即可在线游玩的方式。如今市面上有许多云游戏平台,那么云游...

服务器软件怎么维护(服务器软件维护指南)

一、备份和恢复服务器在运行过程中,会不可避免地出现数据丢失或损坏的情况。为了避免这种情况的发生,我们需要对服务器数据进行备份。备份的目的是为了保留数据、保障数据有效性、提高数据可用性和从故障中恢复数据...