从文本文件中提取第一个 10KB 块,然后将新文件移动到不同的位置
extracting the first 10KB chunk from a text file and then moving the new file to a different location
我在bigdata/*有所有的文本文件。txt.The这个文件的格式是languageName-xxx-10MB.txt。我想执行一个操作,将这些文件从 10MB 递归地分块到前 10KB,然后将新形成的文件放在 ../smalldata/ 中。新形成的文件的格式应为 languageName-xxx-10KB.txt
我已经尝试了这两个操作 independently.The 首先是循环遍历大数据中的所有文件/使用
#!/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
我正在寻找一种迭代合并这两个任务的方法。
在包含 bigdata
和 smalldata
目录的目录中时,您可以 运行
#!/bin/bash
cd bigdata
for entry in *
do
head -c 10240 "$entry" > "../smalldata/${entry//10MB/10KB}"
done
${..}
部分称为 parameter expansion。
#! /bin/bash
BIGDATA=bigdata/*
SMALLDATA=smalldata
for entry in $BIGDATA
do
filename=`basename $entry`
newname=$(echo $filename | awk -F '-' '{print "-" "-10KB.txt"}')
head -c 1 $entry > $SMALLDATA/$newname
done
我在bigdata/*有所有的文本文件。txt.The这个文件的格式是languageName-xxx-10MB.txt。我想执行一个操作,将这些文件从 10MB 递归地分块到前 10KB,然后将新形成的文件放在 ../smalldata/ 中。新形成的文件的格式应为 languageName-xxx-10KB.txt
我已经尝试了这两个操作 independently.The 首先是循环遍历大数据中的所有文件/使用
#!/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
我正在寻找一种迭代合并这两个任务的方法。
在包含 bigdata
和 smalldata
目录的目录中时,您可以 运行
#!/bin/bash
cd bigdata
for entry in *
do
head -c 10240 "$entry" > "../smalldata/${entry//10MB/10KB}"
done
${..}
部分称为 parameter expansion。
#! /bin/bash
BIGDATA=bigdata/*
SMALLDATA=smalldata
for entry in $BIGDATA
do
filename=`basename $entry`
newname=$(echo $filename | awk -F '-' '{print "-" "-10KB.txt"}')
head -c 1 $entry > $SMALLDATA/$newname
done