一尘不染

如何在文件的每一行开头添加字符串?

linux

我有以下bash代码,该代码逐行循环通过文本文件.. im试图为每行添加工作前缀’prefix’,但是却出现此错误:

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

这是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

我在这里做错了什么?

更新:从头开始将所有行都转储到终端的一行中,可能相关吗?

rob@laptop:~/Desktop$ head stusers.txt
rob@laptop:~/Desktop$ ouse.com,passw0rd

阅读 720

收藏
2020-06-03

共1个答案

一尘不染

单行awk命令也可以做到这一点:

awk '{print "prefix" $0}' file
2020-06-03