Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/linq/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Bash 如何在没有换行符的情况下,在带有^的行尾添加单词?_Bash_Sed_Sh - Fatal编程技术网

Bash 如何在没有换行符的情况下,在带有^的行尾添加单词?

Bash 如何在没有换行符的情况下,在带有^的行尾添加单词?,bash,sed,sh,Bash,Sed,Sh,我想在文件中某一行的末尾添加一个字符串(例如:“156555555”) 之前的My file.txt文件: mystrinsdsfssffdfdg mystrdsfdsfdfffding mystrsfdsdfsffdfing mystrdsfdfsdfsffing 这是我的剧本: mydirectory/*txt中文件的;做 filename=`basename“$file”` #读每一行 而IFS=读取-r行 做 old=“$IFS” IFS=“^” 设置$line IFS=“$old”

我想在文件中某一行的末尾添加一个字符串(例如:“156555555”)

之前的My file.txt文件:

mystrinsdsfssffdfdg
mystrdsfdsfdfffding
mystrsfdsdfsffdfing
mystrdsfdfsdfsffing

这是我的剧本:

mydirectory/*txt中文件的
;做
filename=`basename“$file”`
#读每一行
而IFS=读取-r行
做
old=“$IFS”
IFS=“^”
设置$line
IFS=“$old”
计数=1
id=“2656556655”
sed“s/$line/&^$id/”-i$file#我的问题
((count++)
完成<“$file”
完成
今天,我的结果是:

mystrinsdsfssffdfdg
^2656556655
mystrdsfdsfdfffding
^2656556655
mystrsfdsdfsffdfing
^2656556655
mystrdsfdfsdfsffing
^2656556655
预期结果:

mystrinsdsfssffdfdg^2656556655
mystrdsfdsfdfffding^2656556655
mystrsfdsdfsffdfing^2656556655
mystrdsfdfsdfsffing^2656556655

假设目标是在给定文件的每一行末尾追加一个字符串(^2656556655)

一个示例文件:

$ cat mystring.txt
mystrinsdsfssffdfdg
mystrdsfdsfdfffding
mystrsfdsdfsffdfing
mystrdsfdfsdfsffing
一个
sed
解决方案,附加到文件中每一行的末尾:

$ sed 's/$/^2656556655/g' mystring.txt
mystrinsdsfssffdfdg^2656556655
mystrdsfdsfdfffding^2656556655
mystrsfdsdfsffdfing^2656556655
mystrdsfdfsdfsffing^2656556655

此方法的一个好处是,您可以将a)文件中每一行的内部循环构造和重复的
sed
调用替换为b)单个
sed
调用和一次通过输入文件。最终的结果是,您应该看到处理给定文件所需的时间明显加快

基于您的书面描述,此代码毫无意义。这将满足您在“预期结果:”中所说的要求:
sed-i的/$/^2656556655/'myfile.txt