用shell脚本生成data pipeline的日志

2023-05-16

用shell脚本生成data pipeline的日志

在数据处理的data pipeline通常主要的数据处理工作都是用shell脚本批量完成. 特别有必要生成各被试数据处理日志文件以便pipeline的调试, 优化, 数据处理的追踪. Python提供了一个日志记录工具包: loggings, 其实shell脚本也可以方便地生成日志.

用echo命令

用echo将需要记录的内容输出, 并通过管道重定位到日志文件中

for g in `cat test` ; do  
  echo "line in test: "$g >> .logmore   
done

用cat命令配合EOF

对于内容很多的情况, 可以用EOF结合cat命令。
EOF是END Of File的缩写,表示自定义终止符.既然自定义,那么EOF就不是固定的,可以随意设置别名,在linux控制台按ctrl-d就代表EOF, 终止正在运行的命令.
EOF一般会配合cat能够多行文本输出.
通过cat配合重定向(<, >, <<, >>)能够生成文件并追加操作, 其用法如下:

<<EOF        //开始
....
EOF            //结束

这种方法可以在生成pipeline中某些批量处理的shell脚本, 也可以生成日志记录.

cat <<stage_tpl3 > data_proc.log  // statge_tpl3是自定义终止符, 将所有的日志都写入data_proc.log文件
#!/bin/sh
if [ -f ../template_list ] ; then
    template_list=\`cat ../template_list\`
    ….
else
    ...
fi
...
stage_tpl3

用反引号“生成日志必要的信息

反引号` `
反引号` `是命令替换,Shell可以先执行` `中的命令,将输出结果暂时保存,在适当的地方输出。语法: `command`

#!/usr/bin/env bash
# encoding: utf-8
echo [`date`] [`hostname`] [`uname -a`] [`pwd`] [$0 $@] >> .log

得到的.log文件内容如下:
[Tue Apr 10 16:03:07 CST 2018] [DL] [Linux DL 4.4.0-116-generic #140-Ubuntu SMP Mon Feb 12 21:23:04 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux] [/home/dl/] [./test ]

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

用shell脚本生成data pipeline的日志 的相关文章

  • Shell 脚本 - 迭代空格分隔的单词/字符(在 zsh 中)

    我在弄清楚如何在 shell 脚本中迭代空格分隔的单词 字符时遇到一些麻烦 例如 我想迭代一个包含字母表中由空格分隔的字符的变量 注意 即使字母表变量包含空格分隔的字符串而不是字符 结果也应该是相同的 即 aa bb cc 而不是 a b
  • 使用单个 shell 脚本运行 React 和 Flask

    我构建了一个使用 ReactJS 作为前端和 Flask 作为中间件的应用程序 我可以使用以下命令序列来执行它 npm start cd Equation Solver python m flask run 执行第一个命令后 我必须打开另一
  • 使用 GIT_PS1_SHOWCOLORHINTS 自定义 __git_ps1 的颜色

    我尝试过的 我已更新我的提示以包含分支名称 git ps1 另外 我设置GIT PS1 SHOWCOLORHINTS 问题 提示正确显示 然而 树枝的颜色始终是绿色的 我预计肮脏的树枝会是红色的 文档指出 颜色基于 git status s
  • 如何将node.js管道传输到redis?

    我有很多数据要插入 SET INCR 到redis DB 所以我正在寻找pipeline http redis io topics pipelining 质量插入 http redis io topics mass insert通过node
  • 在 UNIX 时间戳 Shell/Bash 中将日期与时区转换

    我需要将日期从格式为 yyyy mm dd hh mm ss TZ 的字符串转换为 UNIX 时间 TZ 时区 到目前为止我所做的是将没有时区的 yyyy mm dd hh mm ss 格式的日期转换为时间戳 dateYMD 2019 2
  • 如何从 C 文件更改终端中的目录

    如何从 C 程序更改将在终端上生效的目录 实际上不要告诉 system 函数或 chdir 函数 这些仅适用于 C 中的进程或子 shell 假设我正在从 bash shell 执行一个 C 程序 其进程 ID 为 10223 那么 我可以
  • 如何使用 cron 作业运行 python 文件

    您好 我创建了一个 python 文件 例如file example py 该文件将输出 sensex 值 假设该文件在linux系统上的路径为 Desktop downloads file example py 我通常会运行该文件pyth
  • Linux shell 命令逐块读取/打印文件

    是否有一个标准的 Linux 命令可以用来逐块读取文件 例如 我有一个大小为 6kB 的文件 我想读取 打印第一个 1kB 然后是第二个 1kB 看来猫 头 尾在这种情况下不起作用 非常感谢 你可以这样做read n在循环中 while r
  • subprocess.Popen args 参数的最大长度是多少?

    我在用Popen http docs python org library subprocess html using the subprocess modulesubprocess 模块中的函数来执行命令行工具 subprocess Po
  • Bash 完成脚本在某些参数选项后完成文件路径

    我正在为命令行工具编写 bash 完成脚本 plink local cur prev opts COMPREPLY cur COMP WORDS COMP CWORD prev COMP WORDS COMP CWORD 1 opts 1
  • 如何在 Bash 中为数组赋值?

    我正在尝试从文本文件中读取值列表 你好 txt 并将它们存储在一个数组中 counter 0 cat hello txt while read line do Unix Array counter line let counter coun
  • 如何将文件中的值分配给 UNIX sh shell 中的变量?

    我一直在搜索这个网站 试图找到这个问题的答案 并发现了几个非常好的答案 不幸的是 它们都不适合我 这是我正在使用的脚本 VALUE cat szpfxct tmp export VALUE echo gt gt LGFILE echo te
  • 如何从 C 函数创建 shell 命令

    想知道如何获取一组 C 函数并将它们转换为 shell bash 命令 假设我有一组简单的 C 函数 int fn1 some C code for function 1 int fn2 some C code for function 2
  • 让 Emacs ansiterm 和 Zsh 更好地发挥作用

    我一直在尝试在 emacs 会话中使用 Zsh 而无需 emacs 重新映射所有 Zsh 键 我发现 ansi term 对此非常有效 但是我仍然遇到一些问题 我输出了很多垃圾字符 我可以用以下方法修复它 Setup proper term
  • 通过 SSH 将变量传递给远程脚本

    我正在通过 SSH 从本地服务器在远程服务器上运行脚本 首先使用 SCP 复制该脚本 然后在传递一些参数时调用该脚本 如下所示 scp path to script server example org another path ssh s
  • Windows、Emacs、Git Bash 和 shell 命令

    Windows 7 Emacs 24 3 1 git 1 8 1 msysgit 1 我的等效 emacs 文件中有以下内容 if equal system type windows nt progn setq explicit shell
  • 从 bash 脚本运行节点

    很简单 我正在尝试使用 cron 自动运行 nodejs 脚本 但是脚本本身似乎无法运行该文件 我的脚本很简单 usr bin env node node var node assets js update js 但是 在运行此命令时 它返
  • 如何在fish shell脚本中获取程序名称?

    在 bash 中 与在 ruby 中一样 程序名称由 0 给出 鱼里有什么 如果有必要 我可以执行以下操作 set PROGRAM ps no header o args p self egrep o S 2 但我确信程序名称必须已经在某个
  • 如何从spark管道逻辑模型中提取变量权重?

    我目前正在尝试学习 Spark Pipeline Spark 1 6 0 我将数据集 训练和测试 导入为 oas sql DataFrame 对象 执行以下代码后 生成的模型是oas ml tuning CrossValidatorMode
  • 在 shell 脚本中查找和替换

    是否可以使用 shell 在文件中搜索然后替换值 当我安装服务时 我希望能够在配置文件中搜索变量 然后在该值中替换 插入我自己的设置 当然 您可以使用 sed 或 awk 来完成此操作 sed 示例 sed i s Andrew James

随机推荐

  • 可编程的SQL是什么样的?

    背景 如果你使用传统编程语言 xff0c 比如Python xff0c 那么恭喜你 xff0c 你可能需要解决大部分你不需要解决的问题 xff0c 用Python你相当于拿到了零部件 xff0c 而不是一辆能跑的汽车 你花了大量时间去组装汽
  • matplotlib 绘制动画

    matplotlib动画 载入matplotlib动画绘制工具 span class hljs import span class hljs keyword import span matplotlib animation span cla
  • Robust Real-Time Extreme Head Pose Estimation

    基本思路 xff1a 用RGB D 的摄像头 xff0c 利用RGB和深度信息对人脸进行三位建模和合成 之后建立了一个由33个人不同头部姿态点云合成数据组成的数据库Dali3DHP xff0c 基于级联决策树 xff08 5个 xff09
  • 如何将ipython的历史记录导出到.py文件中?

    python绝对是生产力工具 真的太好用了 python jupyter提供了非常好的交互编程方式 最棒的就是在数据分析过程中 可以把想法和代码实现放在一起 大大加速了分析过程 也使得代码的可读性更好 回到上面的问题 两种办法解决 xff1
  • keras上手系列之: 模型的保存

    如何将训练好的网络进行保存以便以后使用 进行后续的研究呢 首先 定义一个简单的LSTM模型 span class hljs keyword from span keras models span class hljs keyword imp
  • keras上手系列之: 代码的整体框架

    keras的名字来源于希腊史诗 lt 奥德赛 gt 里的牛角之门 Gate of Horn 是追梦者之路 是梦想实现之门 Those that come through the Ivory Gate cheat us with empty
  • keras上手系列之:序列到序列预测问题

    LSTM序列到序列模型种类 LSTM 序列到序列 seq to seq 问题建模 根据问题和数据本身的特点 可以分为几种不同 一对一 one to one 多对一 many to one 一对多 one to many 多对多 many t
  • keras上手之:与tensorflow混合编程

    tensorflow具备许多优秀的函数和功能 xff0c 比如tensorboard xff0c keras作为tensorflow的高级API xff0c 封装很多tensorflow的代码 xff0c 使得代码模块化 xff0c 非常方
  • 贝叶斯网络和概率推理(一):理性决策与朴素贝叶斯

    在实际问题中 xff0c 理性决策 xff08 rational decision xff09 就意味着必须对结果出现的相关因素及其重要性 xff0c 以及目标实现的可能性进行合理评估 由于未知和惰性 xff0c 让我们对问题中的每个 因果
  • DTI数据处理: from scanner to statistics

    安装准备 工具 FSL MRIcron 准备工作 MRIcron安装 MRIcron的下载地址 http www mccauslandcenter sc edu mricro mricron dcm2nii html FSL安装 FSL是一
  • 核磁数处理和数据分析的资源汇总-不断更新

    在线电子书 xff1a http www magnetic resonance org 几个专业名词 axial diffusivity AD fractional anisotropy FA mean diffusion MD radia
  • 如何将Python算法模型注册成Spark UDF函数实现全景模型部署

    本文作者来自Byzer社区 amp Kyligence 机器学习平台工程师 Andie Huang 背景 Background 对于算法业务团队来说 xff0c 将训练好的模型部署成服务的业务场景是非常常见的 通常会应用于三个场景 xff1
  • linux系统下c/cpp编译链接时系统的默认搜索路径

    C C 43 43 程序在linux下被编译和连接时 xff0c GCC G 43 43 会查找系统默认的include和link的路径 xff0c 以及自己在编译命令中指定的路径 自己指定的路径就不说了 xff0c 这里说明一下系统自动搜
  • 核磁数据处理: FSL系列之segmentation工具FAST

    fsl的segmentation工具 FAST FMRIB s Automated Segmentation Tool 将大脑组织的3D影响分解为不同的组织 比如灰质 白质 脑脊液等等 同时还可以进行spatial intensity va
  • 核磁数据处理: FSL系列之bet命令

    bet命令用于脑组织的提取 有GUI和命令行两种调用方式 下图是bet的GUI界面 在shell中输入命令Bet就可以启动bet的GUI界面了 界面非常简单 只需要制定输入图像 设置图像密度阈值f 选择bet命令执行的方式 Run stan
  • MRI数据处理: FSL线性配准flirt命令

    flirt 是FSL的线性修正工具 官方提供了非常丰富的调用方式 命令Flirt可以启动FLIRT的GUI 43 InvertXFM ApplyXFM ConcatXFM命令flirt 是命令行工具misc flirt utilities
  • Linux中的管道和IO重定向

    Linux中的管道和IO重定向 管道技术是什么 管道是linux中进程之间的通信技术 核心思想是先进先出 FRIST IN FIRST OUT FIFO 管道的英文是pipeline 这个词很生动地描述了数据和信息在进程之间的流动就像在水管
  • 数据分析之: 基本文件操作

    查看数据和文件基本操作 拿到数据后 我们都会马上打开看看 最直接的动作就是鼠标点开 看看都有哪些文件夹 里面都有哪些数据 如果数据比较少 这样简单粗暴的查看方式在时间上还是可以接受的 但是如果数据文件很多 特别是文件夹嵌套了很多层 那这样的
  • 核磁数据处理之: FSL数据快视

    数据质量检查的时候 惯用的做法是用fsleyes逐个打开检查 当数据量变大的时候 这个做法非常消耗时间和精力 考虑到NifTI数据本质上就是好多成像切片三维重建的 如果可以将其中一些切片拿出来在html中批量显示 一个NifTI文件对应一排
  • 用shell脚本生成data pipeline的日志

    用shell脚本生成data pipeline的日志 在数据处理的data pipeline通常主要的数据处理工作都是用shell脚本批量完成 特别有必要生成各被试数据处理日志文件以便pipeline的调试 优化 数据处理的追踪 Pytho