从文本文件中提取第一个10KB块,然后将新文件移动到其他位置

时间:2015-04-23 19:33:24

标签: bash sh

我有bigdata / * .txt的所有文本文件。此文件的格式为languageName-xxx-10MB.txt。我想执行一个操作,将这些文件从10MB块递增到前10KB递归,然后将新形成的文件放在../smalldata/。新形成的文件格式应为languageName-xxx-10KB.txt < / p>

我已经独立尝试了这两个操作。首先是在bigdata中使用

循环遍历所有文件
#!/bin/bash
for entry in bigdata/*
do
echo "$entry"
done

我得到输出为

bigdata/lang1-xxx-10MB.txt
bigdata/lang2-xxx-10MB.txt
.
.
bigdata/langn-xxx-10MB.txt

我也尝试使用head命令,使用

获取文件的前10KB
head -c 10240 lang1-xxx-10MB.txt > ../smalldata/lang1-xxx-10KB.txt

我正在寻找一种迭代合并这两个任务的方法。

2 个答案:

答案 0 :(得分:0)

在包含bigdatasmalldata目录的目录中,您可以运行

#!/bin/bash
cd bigdata
for entry in *
do
  head -c 10240 "$entry" > "../smalldata/${entry//10MB/10KB}"
done

${..}部分称为parameter expansion

答案 1 :(得分:0)

T