【问题标题】:Issue on concatenating files shellscipt连接文件shell脚本的问题
【发布时间】:2017-07-14 12:55:58
【问题描述】:

对不起,我来自巴西,我的英语不太流利。

我想通过 cat 命令使用 shellscript 连接 20 个文件。但是,当我从文件中运行它时,文件的所有内容都会显示在屏幕上。

当我直接从终端运行它时,效果很好。

这是我上面的代码:

#!/usr/bin/ksh

set -x -a
. /PROD/INCLUDE/include.prod
DATE=`date +'%Y%m%d%H%M%S'`
FINAL_NAME=$1

# check if all paremeters are passed

if [ -z $FINAL_NAME ]; then
   echo "Please pass the final name as parameter"
   exit 1
fi

# concatenate files

cat $DIRFILE/AI6LM760_AI6_CF2_SLOTP01* $DIRFILE/AI6LM761_AI6_CF2_SLOTP02* $DIRFILE/AI6LM763_AI6_CF2_SLOTP04* \
$DIRFILE/AI6LM764_AI6_CF2_SLOTP05* $DIRFILE/AI6LM765_AI6_CF2_SLOTP06* $DIRFILE/AI6LM766_AI6_CF2_SLOTP07* \
$DIRFILE/AI6LM767_AI6_CF2_SLOTP08* $DIRFILE/AI6LM768_AI6_CF2_SLOTP09* $DIRFILE/AI6LM769_AI6_CF2_SLOTP10* \
$DIRFILE/AI6LM770_AI6_CF2_SLOTP11* $DIRFILE/AI6LM771_AI6_CF2_SLOTP12* $DIRFILE/AI6LM772_AI6_CF2_SLOTP13* \
$DIRFILE/AI6LM773_AI6_CF2_SLOTP14* $DIRFILE/AI6LM774_AI6_CF2_SLOTP15* $DIRFILE/AI6LM775_AI6_CF2_SLOTP16* \
$DIRFILE/AI6LM776_AI6_CF2_SLOTP17* $DIRFILE/AI6LM777_AI6_CF2_SLOTP18* $DIRFILE/AI6LM778_AI6_CF2_SLOTP19* \
$DIRFILE/AI6LM779_AI6_CF2_SLOTP20* > CF2_FINAL_TEMP

mv $DIRFILE/CF2_FINAL_TEMP $DIRFILE/$FINAL_NAME

【问题讨论】:

  • “当我从文件运行它时,文件的所有内容都显示在屏幕上”是什么意思。 ?
  • 是否可以使用像cat $DIRFILE/AI6LM7[67]?_AI6_CF2_SLOTP*这样的通配符?

标签: shell ksh


【解决方案1】:

我解决了将 cat 块放入函数中并将标准输出重定向到最终文件的问题。

例如: 连接()

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-07
    • 2010-12-12
    • 1970-01-01
    • 1970-01-01
    • 2013-03-08
    相关资源
    最近更新 更多