用于更改文本文件的Shell脚本/linux命令

用于更改文本文件的Shell脚本/linux命令,linux,shell,unix,scripting,Linux,Shell,Unix,Scripting,我有大约40000个.txt文件,其中包含如下框架: 30724 64260 65286 65527 46579 83 65 72 28652 65516 57343 3127 2067 30750 64332 65532 65532 65532 38364 0 512 16368 65535 65534 55806 0 32271 我只想在文件的开头和结尾添加一些参数名,以便可以使用这些文件进行负载测试 所需格式应为: { "frames":"30724 64260 65286 65527

我有大约40000个.txt文件,其中包含如下框架:

30724 64260 65286 65527 46579 83 65 72 28652 65516 57343 3127 2067 30750 64332 65532 65532 65532 38364 0 512 16368 65535 65534 55806 0 32271

我只想在文件的开头和结尾添加一些参数名,以便可以使用这些文件进行负载测试

所需格式应为:

{
  "frames":"30724 64260 65286 65527 46579 83 65 72 28652 65516 57343 3127 2067 30750 64332 65532 65532 38364 0 0 512 16368 65535 65534 55806 0 0 0 32271",
  "params": {"rms":false,"removeSpecialFrames":"true"}
}
请帮助我使用linux脚本,因为我是shell脚本的初学者

提前谢谢

mkdir -p out
for f in *.txt; do
    echo '{"frames":"' > "out/$f"
    cat "$f" >> "out/$f"
    echo '", "params": {"rms":false,"removeSpecialFrames":"true"}}' >> "out/$f"
done
以上假设您所在的目录中充满了*.txt文件,它会将输出写入一个新的名为out的目录。

您可以使用此sed:

sed -i.bak -e 's/^/{"frames":"/' -e 's/$/", "params": {"rms":false,"removeSpecialFrames":"true"}}/' file.txt

感谢anubhava的快速回复。这正是我想要的。不客气,很高兴它成功了。如果您满意,您可以将答案标记为已接受。谢谢您的回复。它工作得很好:你做了什么没有产生正确的结果?