[英]Append specific string to the start of each line of an output file while streaming result of a command to the same file
不太确定如何措辞。 我正在尝试编写一个 shell 命令,该命令将 append 文件名的第一部分到每行的开头,同时在 for 循环中流式传输命令的结果,这将在文件中创建行。 同时,我正在删除 stream 中我不想写入文件的某些行。 例如,我有 4 个成对的文件,基本上是 2 对文件。
file1.a.txt
1
2
file1.b.txt
a
b
c
file2.a.txt
3
8
4
file2.b.txt
d
c
c
a
当我运行 shell 命令时,我希望只获得一个文件名的第一部分以及我的脚本命令的 output 是什么。 脚本命令将始终生成行数等于 b.txt 中的行数的结果以及我不需要预期结果的某些行:
结果.txt
file1 script result for line containing a in file1.b.txt
file1 script result for line containing b in file1.b.txt
file1 script result for line containing c in file1.b.txt
file2 script result for line containing d in file2.b.txt
file2 script result for line containing c in file2.b.txt
file2 script result for line containing c in file2.b.txt
file2 script result for line containing a in file2.b.txt
到目前为止我所拥有的:
for x in *a.txt; do echo $(x%.*.*};script command result | sed '/^\(/d'| sed '/^0/d' >> result.txt
这是用正确的行生成result.txt,但是我试图从append 到每行开头的名称从每行的开头丢失。 也就是说,它被打印到屏幕上,我相信是由于回声。 我需要帮助才能达到我想要的结果。
我猜你想要:
for x in *a.txt; do
script command result |
sed '/^\(/d'| sed '/^0/d' |
sed "s/^/$x/" >> result.txt
done
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.