在每行文件的末尾添加一个随机数

时间:2016-08-16 20:51:04

标签: string bash performance file

我愿意在文件的每一行末尾添加一个不同的随机数。我必须重复几次这个过程,每个文件包含大约20k行,每行包含大约500k个字符。

到目前为止我提出的唯一解决方案是

dep p = new User(name: 'Karl')
p.save()

有更快的解决方案吗?

4 个答案:

答案 0 :(得分:3)

你可以使用awk:

awk '{ print $0, int(32768 * rand()) }' "$file" > tmp && \
    mv tmp "$file"

答案 1 :(得分:3)

你可以做得更简单,无需打开和关闭输入和输出文件,并在每一行产生新进程,如下所示:

while read line
do
    echo "$line $RANDOM"
done < "$file" > tmp.txt

答案 2 :(得分:1)

使用awk:

StringBuilder sb = new StringBuilder();
StringWriter sw = new StringWriter(sb);

using(JsonWriter writer = new JsonTextWriter(sw))
 {
  var serializer = new JsonSerializer();
  serializer.Serialize(writer, data);
 } 

如果您有gnu awk,那么您可以使用bool isValid = SomeJsonSchemaValidator(responseContentInJsonFormat, jsonSchema); 保存文件:

awk -v seed=$RANDOM 'BEGIN{srand(seed)} {print $0, int(rand() * 10^5+1)}' file

答案 3 :(得分:0)

您的脚本可以重写为:

file="example.txt"
cat ${file} | while read line; do
    echo "${line} $RANDOM"
done > tmp.txt
mv tmp.txt ${file}