我应该如何提取一个包含多个rar
应该相互提取的文件的文件?
大家好,请帮我写一个脚本来执行以下操作:
- 我想打开一个名为 C60_GRM_box.gro 的文本文件(我从下面这个文件中复制了第一行),然后提取下面的第二行 127240;
GRM in vacuum 127240 1GRM C1 1 0.061 0.071 0.000 1GRM C2 2 0.184 0.142 0.000
- 然后,我想从第一步中提取的数字中减去 2800,然后将结果除以 60
我想要做什么:(在步骤号 1 - 2800 中提取的数字)/60 = 结果
- 最后我想打开另一个名为C60_GRM_box.top的txt文件(我已经复制了下面的文本文件中的所有数据我想替换它的一部分)并替换一个数字(这是G8LE这个词旁边的数字,下面是3000 ) 用我在步骤 2 中获得的结果,我已经粘贴了下面名为 C60_GRM_box.top 的第二个文件的所有内容;
; Include forcefield parameters include "/home/abdelaal/Desktop/GROMACS/C60:TAPC/C60_GRM/41/gromos54a7.ff/forcefield.itp" ; Include topology for GRM include "/home/abdelaal/Desktop/GROMACS/C60:TAPC/C60_GRM/41/GRM.itp" ifdef POSRES include "/home/abdelaal/Desktop/GROMACS/C60:TAPC/C60_GRM/41/posrestr.itp" endif ; Include topology for C60 include "/home/abdelaal/Desktop/GROMACS/C60:TAPC/C60_GRM/41/C60.itp" [ system ] ; Name GRM in vacuum [ molecules ] ; Compound #mols GRM 1 G8LE strong text 3000
如果我可以在不打开完美文件的情况下完成上述所有操作,我不需要在步骤 1 和 3 中打开文件。
非常感谢
我必须访问 ISO 安装映像中包含的整个 DEB 文件存档,我刚刚安装了 ISO 映像,并且在“casper/filesystem.squashfs”文件系统之后...
sudo mkdir /media/iso
sudo mount -o loop /home/fabio/Desktop/ubuntu-18.04.4-desktop-amd64.iso /media/iso/
sudo mkdir /media/casper
sudo mount -t squashfs /media/iso/casper/filesystem.squashfs /media/casper/
但任何 DEB 搜索...
sudo find /media/casper/ -type f -name "*.deb"
什么都不返回。
鉴于:
- Zip 文件的名称和位置。示例:collectionOfPdfFiles2017.zip
- Zip File 是没有文件夹结构的 PDF 集合
- Zip 文件中 PDF 文件的名称。示例:someFileFrom2017.pdf
通缉:
- 从给定的 zip 文件中提取命名 PDF 的控制台方式
- 该文件不应被修改。
- 基本上,提取的文件应该与我通过提取整个存档并手动复制想要的文件获得的状态相同。
- 理想情况下进入目标文件夹。但那是奢侈。
我该怎么做呢?目前我有一个脚本,它将在 ZIP 内的 PDF 文件中搜索字符串并打印出 zip 的名称和其中的 pdf。我会张贴这个以防万一:
#!/bin/bash
echo "Hi I'll find text in pdf files that are stored inside zip files."
echo ""
echo "Enter search string:"
read searchString
echo "Ok. I'll search all zip files for content with this text..."
for z in *.zip
do
zipinfo -1 "$z" | # Get the list of filenames in the zip file
while IFS= read -r f
do
unzip -p "$z" "$f" | # Extract each PDF to standard output instead of a file
pdftotext - - | # Then convert it to text, reading from stdin, writing to stdout
grep -q $searchString && echo "$z -> $f" # And finally grep the text
done
done
这个脚本是由于这个答案而创建的。
我使用Download Accelerator Plus在 tar.gz 中下载了一个 120 GB 的数据集,并使用以下命令将其解压缩:
tar -xvzf train_val2018.tar.gz
提取后的数据集应包含略多于 8,142 个文件夹和正好 461,939 个图像文件。
当我打开提取的文件夹时,它确实包含数据集的一部分。但是,其中很大一部分丢失了 - 它仅包含 3,542 个文件夹和 179,689 个文件。
在 Ubuntu 上使用文件资源管理器或内置文件提取器 GUI 来提取它只会变得更糟。我也在 Windows 上尝试过各种应用程序,例如 WinZip、WinRAR 和 7Zip。这些都不起作用,但他们的问题是他们在如此大的数据集上存在内存问题。
文件是否已损坏?该文件的大小与他们在数据集网站中提到的大小相同,并且我已经使用 DAP 下载了几个较大的文件,并且从未遇到过损坏问题。出于这个原因,我想知道内置提取器是否有一些限制或其他问题。
我指的数据集是iNaturalist 2018 Contest Dataset。
问题
我有一个格式如下的日志文件:
2018/12/05 22:43:14 [ChestShop] User bought 1 Boat for 8.00 from Admin Shop at [...] -246, 65, 61
2019/01/02 10:09:38 [ChestShop] User sold 64 Sea Lantern for 27840.00 to Admin Shop at [...] -234, 61, 45
2019/01/02 10:09:38 [ChestShop] User sold 48 Sea Lantern for 20880.00 to Admin Shop at [...] -234, 61, 45
2019/01/02 10:09:42 [ChestShop] User sold 2 Prismarine Bricks for 248.00 to Admin Shop at [...] -233, 62, 45
我想从中提取某些信息并将它们显示在汇总列表中。
我想总结的信息是名称、数量和销售价值。销售价值是列出数量的总销售价值。名称(Sea Lantern、Prismarine Bricks 等)以及数量(名称左侧的数字)和销售价值( “for”右侧的数字)可以多次出现在此日志文件中。名称可能包含多个空格(从不超过 4 个)或根本没有。
... ... [...] ... ... 2 Prismarine Bricks ... 248.00 ... ... ... ... [...] ..., ..., ...
最好,我希望摘要看起来像:
totalQuantity1 uniqueName1 totalSellValue1
totalQuantity2 uniqueName2 totalSellValue2
根据对命令的微小更改,按 totalQuantity 或 totalSellValue 排序。
我解决问题的尝试
我发现我可以使用以下命令来获取最常出现的项目的列表以及它们在日志文件中出现的次数,按它们出现的次数排序(这不是我想要的):
cat ChestShop.log | grep -w sold | cut -d ' ' -f 7,8,9,10,11 | awk -F 'for' '{print $1}' | sort | uniq -c | sort -rn
该grep -w sold
命令仅用于区分买入和卖出,从上面的日志示例中可以看出,在比较买入和卖出时,只有两个词不同。
我还使用此命令从仅包含该项目数量的列表中汇总一个特定项目的数量:
cat ChestShop.log | grep -w sold | grep -w 'Magma Block' | cut -d ' ' -f 6 | paste -s -d+ - | bc
我已经尝试了无数其他对上述命令的修改,但还没有接近我想要的,上面的命令是我得到的最接近的。最好命令也应该尽可能短,或者如果这很困难,对命令的每个部分进行解释,以便我可以理解发生了什么(特别是如果 awk 以我使用过的任何其他方式使用) , 谢谢。
很感谢任何形式的帮助。
我在网上看过教程,但是每当我尝试与那里相同的事情时,它都会说找不到该文件?它必须在特定的地方还是???
我试过使用 p7zip(在终端上显示未知错误 -2147024872,但是当我尝试在没有终端的情况下正常提取时,它显示 Ignoring out-of-order file @19 (README.TXT) 51200 < 55296)当我打开它时使用存档管理器,它只显示一个标有单个句点(“。”)的文件夹,其中没有任何内容,表示它是 0 字节,但 iso 是 3.3GB
这是一个 Windows 7 安装 ISO,我正在尝试将其解压缩到新分区,并且我也尝试将其解压缩到我的普通 Ubuntu 驱动器,但它显示相同的错误
我也尝试在终端中不使用 p7zip 进行提取,它说找不到文件
我也尝试了一个不同的 ISO 文件,但它显示了同样的东西
编辑:我安装了 ISO 文件并在 Nautilus 中打开它只是为了看到一个 readme.txt 文件。它说:“这张光盘包含一个‘UDF’文件系统,需要一个支持ISO-13346‘UDF’文件系统规范的操作系统。” 帮助
我是初学者
我想从文件中提取文件以“START OF TEC MAP”开头并以“END OF TEC MAP”结尾的数据。我怎样才能得到这个特定的时间间隔?我应该使用哪些命令?
我对使用终端很陌生,并且想知道如何将一个充满 .zip 文件的文件夹放入与提取它的 .zip 文件名称相同的子文件夹中。
到目前为止,我认为这unzip '*.zip' -d
会将所有 .zip 文件提取到一个目录中,但我不确定如何-d
为每个 .zip 文件指向/创建目标文件夹。
或者,Nautilus Action Config Tool 似乎可以模仿 7zip Extract To 命令,但这似乎更令人生畏。