new*_*log 2 bash text file lines repeat
例如,我有一个包含5行的文本文件:
one
two
three
four
five
Run Code Online (Sandbox Code Playgroud)
我想制作一个脚本来制作一个包含上面文件循环的2000行文件,它看起来像
one
two
three
four
five
one
two
three
four
five
one
two
three
four
five
............repeat until n times is reached
Run Code Online (Sandbox Code Playgroud)
如果需要重复2000次
for i in {1..2000}; do cat "FILE"; done > NEW_FILE
Run Code Online (Sandbox Code Playgroud)
测试表明,这比目前给出的下一个最佳方法快约100倍.
#!/bin/bash
IN="${1}"
OUT="${2}"
for i in {1..2000}; do
echo "${IN}"
done | xargs cat > "${OUT}"
Run Code Online (Sandbox Code Playgroud)
之所以这么快,是因为它不会重复打开,寻找结束,追加和关闭输出文件.它打开输出文件一次,并在一次大的连续写入中将数据流式传输到它.它也会cat尽可能少地调用它.它cat甚至可以调用一次,具体取决于系统的最大命令行长度和输入文件名的长度.
| 归档时间: |
|
| 查看次数: |
2938 次 |
| 最近记录: |