我正在尝试编写bash脚本
Node.js代码输出到终端,同时也记录到文件
在写入文件时,我需要删除'[Progress]'和此表情符号''之间的所有内容,但应在终端中打印。
如果我使用vscode或类似的编辑器打开,但是在vim上的ubuntu机器上打开,在Mac上工作正常,好像一切都没有改变一样。所有进度和颜色代码仍然存在。
对于我尝试过的表情符号,我使用的代码是\ud83d
这是我的代码
LOG_FILE='output.log'
node inddex.js 2>&1 \
| tee /dev/tty \
| sed -e $'s,\[Progress\].*,,g' -e $'s,\x1b\\[[0-9;]*[a-zA-Z],,g' \
> $LOG_FILE
我的节点输出类似于(对于多行)
[2K[1G[Progress]: Processing Records ...[2K[1G[Progress]: Processed Records: [33m816[0m [2K[1G[Progress]: Processed Records: [33m1725[0m [2K[1G[Progress]: Processed Records: [33m2774[0m [2K[1G[Progress]: Processed Records: [33m4041[0m [2K[1G[Progress]: Processed Records: [33m5207[0m [2K[1G[Progress]: Processed Records: [33m6557[0m [2K[1G[Progress]: Processed Records: [33m8590[0m [2K[1G[Progress]: Processed Records: [33m9811[0m [2K[1G Time taken to process [33m10000[0m records = [36m8.54 sec[0m
对于上面的行,我只需要处理它即可输出文件并在终端上显示所有内容
Time taken to process 10000 records = 8.54 sec