我创建了一些.tar
个文件夹,这些文件夹大部分都包含一些文本文件。是否可以从命令行(bash
和相关工具)以编程方式编辑文本文件而无需完全解压缩tar?
上下文:这些.tar
是由脚本创建的,我意识到我犯了一个错误。我正在寻找最有效和最简单的解决方案来编辑文本文件的单行部分。
答案 0 :(得分:3)
您可以使用tar --delete
和tar --update
替换tar中的文件
答案 1 :(得分:0)
我认为你无法解决压缩问题。你可以做一个循环来解压缩你的文本文件,用sed编辑并再次压缩。在其他情况下,我认为这是不可能的......
也许是这样的
xzcat blah | sed /../../ | xz blah
在遍历所有文件的循环中
答案 2 :(得分:0)
Thanx的灵感格莱美奖,这是一个最小的例子,以防有人来找同样的。 在文件夹中创建一些数据:
cd /tmp;
mkdir dir1;
echo "foo" >> ./dir1/test_txt;
echo "bar" >> ./dir1/test_txt;
打包tar:
tar -cf test_tar.tar dir1;
删除我们要解压缩和编辑的目录。
rm -rf dir1;
只解压缩tar文件夹中的相关文件并编辑:
这就是为什么这里有一个睡眠命令(更改时间戳。)。
sleep 1
tar -xf test_tar.tar dir1/test_txt
sed -i 's/foo/baar/' dir1/test_txt ;
更新相关文件。
tar -uf test_tar.tar dir1/test_txt
检查这是否有效:
tar -xf test_tar.tar dir1
cat ./dir1/test_txt
[...]$
baar
bar