unix - SED 命令用于写回同一个文件
问题描述
我有下面的代码,它在我需要在 python 脚本上运行的每个函数定义之后添加 Logger.info 行,这是要求。
唯一的问题是这必须写回同一个文件,所以新文件在每个函数定义下面都有所有这些 looger.info 语句。
例如,文件 abc.py 当前具有以下代码:
def run_func(sql_query):
return run_func(sql_query)
下面的代码应该创建相同的 abc.py 文件,但将所有 logger.info 添加到这个新文件中
def run_func(sql_query): LOGGER.info (''MIPY_INVOKING run_func function for abc file in directory' return run_func(sql_query)
我无法将此文件中的 sed 写入新文件(具有相同的文件名),以便原始文件被相同的文件名替换,因此我在那里拥有所有 logger.info 语句。
for i in $(find * -name '*.py');
do echo "#############################################" | tee -a auto_logger.log
echo "File Name : $i" | tee -a auto_logger.log
echo "Listing the python files in the current script $i" | tee -a auto_logger.log
for j in $(grep "def " $i | awk '{print $2}' | awk -F"(" '{print $1}');
do
echo "Function name : $j" | tee -a auto_logger.log
echo "Writing the INVOKING statements for $j function definition" | tee -a auto_logger.log
grep "def " $i |sed '/):/w a LOGGER.info (''INVOKING1 '"$j"' function for '"$i"' file in sam_utilities'')'
if [ $? -ne 0 ] ; then
echo " Auto Logger for $i filename - Not Executed Successfully" | tee -a auto_logger.log
else
echo "Auto Logger for $i filename - Executed Successfully" | tee -a auto_logger.log
fi
done
done
解决方案
推荐阅读
- r - 平均具有头号名称的选定列
- java - 消费者从 avro 模式读取数据两次
- javascript - 如您所见,我正在尝试创建链接元素?
- node.js - 有没有办法在 TypeORM 中关闭查询参数化?
- mysql-workbench - 为什么我会收到“未处理的异常”?
- python - DRF - 分页响应 - 附加所有 id 的列表
- reactjs - 点击分页,url的数量发生变化,但下一页不加载react js
- firebase - Firebase 动态链接 - 点击次数是否正确?
- python - 我如何能够测试下面的代码,以便我可以看到决胜局将如何运作?
- mysql - 为 mySQL 5 中的每个组选择第二个最高值