linux - 这个shell脚本有什么作用?什么是标题复制和行复制?变量?

标签 linux bash shell

有人可以帮助我理解以 headercopy、linecopy 和 sed 开头的行中发生的情况吗?不完全理解这些 headercopy 或 linecopy 的含义,因为我不认识这些命令,如果它们是变量,它们在哪里使用?...

GetReportParams|grep -iv conn|grep -v "^$"|while read DB_SCHEMA REP_IDX ORG_SHORT_NAME SQL_SCRIPT OUTPUT_FILE_NAME REPORT_NAME REPORT_TYPE OUT_FILE_EXT ORG_NAME MAIN_EMAIL BCC_EMAIL REPORT_GROUP PARAMETERS
do
  echo ======================================================================================
  export DATE=`date +%Y%m%d -d "1 day ago"`
  export OUTPUT_FILE_NAME="${OUTPUT_FILE_NAME}_$DATE.${OUT_FILE_EXT}"
  export OUTDIR=$OUTDIR_main/${ORG_SHORT_NAME}/${YEAR_MONTH}
  export SCPDIR=/$ORG_NAME/data_extracts/
  TMP_FILE_NAME="TMP_RUN_REPORT.txt" 
  echo Running report for -- $PARAMETERS
  # Remove text qualifier character
  PARAMETERSSEARCH=`echo $PARAMETERS | tr -d \'`
  HeadingCopy=`head -1 $OUTDIR_main/$MAIN_FILE_NAME | tee -a ${OUTDIR_main}/${TMP_FILE_NAME} `
  LineCopy=`grep ^"$PARAMETERSSEARCH" $OUTDIR_main/$MAIN_FILE_NAME | tee -a ${OUTDIR_main}/${TMP_FILE_NAME} ` 
  sed 's/[ \t]*$//' ${OUTDIR_main}/${TMP_FILE_NAME} > ${OUTDIR}/${OUTPUT_FILE_NAME}
  sed -i 's/[^,]*,//' ${OUTDIR}/${OUTPUT_FILE_NAME}
  #cat ${OUTDIR}/${OUTPUT_FILE_NAME}
  rm ${OUTDIR_main}/${TMP_FILE_NAME}

  rsync -a ${OUTDIR}/${OUTPUT_FILE_NAME} oracle@grnwebreports2:$SCPDIR
done

谢谢! 狮子座

最佳答案

HeadingCopy=`head -1 $OUTDIR_main/$MAIN_FILE_NAME | tee -a ${OUTDIR_main}/${TMP_FILE_NAME} `

将文件 $OUTDIR_main/$MAIN_FILE_NAME 中的第一行复制到变量 HeadingCopy 并将输出重定向(追加)到文件 ${OUTDIR_main}/${TMP_FILE_NAME}

 LineCopy=`grep ^"$PARAMETERSSEARCH" $OUTDIR_main/$MAIN_FILE_NAME | tee -a ${OUTDIR_main}/${TMP_FILE_NAME} ` 

复制以变量 PARAMETERSSEARCH 中存在的字符串开头的行,并 还将输出重定向(附加)到文件 ${OUTDIR_main}/${TMP_FILE_NAME}

第二个 sed 将替换文件中从第一个字符开始的每一行数据,直到遇到“,”

关于linux - 这个shell脚本有什么作用?什么是标题复制和行复制?变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14936569/

相关文章:

bash - 用于导入的 sqlite 字段分隔符

bash - 检查一个数字是否在 shell 中是偶数

c - 重定向子进程的输出

linux - 通过命令行将标志和其他参数一起传递给 ksh 脚本

linux - libc 在哪些平台上将堆栈 cookie 值存储在 __stack_chk_guard 以外的位置?

c - linux下C多线程程序如何有效锁定普通变量

linux - 使用 xargs 运行多个命令

shell - 如何获取可以删除的文件夹列表?

linux - salt 中不允许映射值

linux - 在 FOR 循环中查找时如何从名称中删除扩展名