shell脚本、linux命令相关面试题

1.写一个bash脚本,找出目录\root\test中子目录下所有文件内容包含test的文件,并将此文件转移到已经存在的目录\root\export中

文件目录结构类似于

test

  ---1.txt

  ---2.txt

  test1

    ---1.sql

    ---2.sql

  test2

    --1.log

    --2.log

脚本如下:

#!/bin/bash
find  /root/test -type f > /root/3.txt
file_path=$(cat /root/3.txt)
for a in $file_path
do
result=$(cat $a|grep test)
if [[ $result != '' ]]
then
echo $a
cp $a /root/export
fi
done

find命令非常强大呀,使用find /root/test -type f 可以列出来所有的该路径下的文件(而不是文件夹哟)

整体思路就是:列出/root/test路径下的所有文件,这些文件包括文件路径,如下图:

将这些文件路径存入到/root下的3.txt文件中,遍历3.txt文件,使用cat /root/3.txt,cat $a|grep test 找出文件中包含test的内容,找到后将这些文件移动到/root/export路径下,也可以使用mv命令移动,cp类似于复制,mv类似于剪切

猜你喜欢

转载自www.cnblogs.com/zhaikunkun/p/12895669.html
今日推荐