我有以下bash代码,它循环遍历文本文件,逐行..我试图将工作'前缀'作为前缀添加到每一行,但我得到此错误:
rob@laptop:~/Desktop$ ./appendToFile.sh stusers.txt kp
stusers.txt
kp
./appendToFile.sh: line 11: /bin/sed: Argument list too long
115000_210org@house.com,passw0rd
Run Code Online (Sandbox Code Playgroud)
这是bash脚本..
#!/bin/bash
file=$1
string=$2
echo "$file"
echo "$string"
for line in `cat $file`
do
sed -e 's/^/prefix/' $line
echo "$line"
done < $file
Run Code Online (Sandbox Code Playgroud)
我在这做错了什么?
更新:执行head on file将所有行转储到终端的一行,可能是相关的?
rob@laptop:~/Desktop$ head stusers.txt
rob@laptop:~/Desktop$ ouse.com,passw0rd
Run Code Online (Sandbox Code Playgroud) 我有一个程序,可以将大量文件从一个位置复制到另一个位置-我说的是100,000个以上的文件(此刻我正在按图像顺序复制314g)。它们都位于极端的大型,非常快速的网络存储RAID上。我正在使用shutil顺序复制文件,这需要一些时间,因此我试图找到最佳方法来对此进行优化。我注意到有些软件可以有效地使用多线程从网络中读取文件,从而大大缩短了加载时间,因此我想尝试在python中进行此操作。
我没有编程多线程/多进程的经验-这似乎是正确的领域吗?如果是这样,最好的方法是什么?我看过其他一些关于在python中复制线程文件的SO帖子,它们似乎都说您没有速度提高,但是考虑到我的硬件,我认为情况不会如此。目前,我的IO上限还差得远,资源只占1%左右(我本地有40个内核和64g的RAM)。