一个bash脚本,用于连接字符串并使用bash脚本在同一文件中编辑一行

prashanta_himalay

我试图编写一个bash脚本来运行以下步骤中的几种情况:

  1. 读取.txt数组中文件
  2. 将数组的每个元素与特定字符串连接
  3. 以分离模式打开多个屏幕,然后更改特定文件(在这种情况下seq.txt)并运行一些命令

代码如下:

COUNTER=0
readarray t1Gad < t1_gad.txt
while [  $COUNTER -lt 5 ]; do
    NUM_DEVICE=8
    DEVICE_NO=`expr $COUNTER % $NUM_DEVICE`
    string1='objGa_'
    string2=${t1Gad[$COUNTER]}
    #string2='hello'
    string=$string1$string2
    echo $string2
    echo $string1
    echo $string
    screen -d -m -S "$COUNTER" bash -c 'cd $HOME/Downloads && sed -i '2s/.*/$string/' seq.txt && cat seq.txt; exec sh'
    let COUNTER=COUNTER+1
done

有趣的是,如果我string2用固定的字符串替换,它可以正常工作,但不能与数组的数组元素一起工作。

如果有人向我解释我会很高兴。我对bash脚本非常陌生,但是迫切希望学习这种非常有用但难看的脚本语言。

我发现了问题,但不知道如何解决。在进行字符串连接时,例如说

    string1="objGa_"
string="$string1${t1Gad[$COUNTER]}"

(例如192是该特定元素),在这种情况下,它被替换

objGa_192 ' ' 

在屏幕内部。我不知道如何摆脱这个空间以及它来自何处。

t1_gad.txt:

100
200
300
400
500

seq.txt:

abc
objw
cde
efg
xyz
哈拉德·诺德格伦(Harald Nordgren)

readarray在每个变量的末尾放置一个空格,这似乎导致该sed命令出现问题

摆脱尾随空白的一种优雅方法是将字符串传递给xargs

string2=$(echo ${t1Gad[$COUNTER]} | xargs)

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

一个bash脚本,用于将文件夹的所有文件复制到Desktop中的唯一文件夹

从一个文件中查找不在另一文件行中的字符串

找到一个模式并编辑下一行,然后使用python写回到同一文件

使用Awk将一个文件中的字符串替换为另一文件中的字符串

使用Robotium Recorder在同一文件中运行不同的测试脚本

如何从一个文件中获取所有在另一文件中包含字符串的行?

如何使用批处理脚本在特定行中将一个文件的内容添加到另一文件中?

如何制作将使同一文件夹中的另一个脚本可执行的脚本?

搜索并替换同一文件中的字符串,并计算替换的数字

将Byte数组和字符串存储在同一文件中

一个Bash脚本,用于检查以逗号分隔的字符串列表中是否存在字符串

Bash脚本产生一个“循环字符串”?

Bash-在同一文件中查找并替换为新行

使用bash将一个文件中的行剪切为另一文件中明确指出的长度

使用bash脚本从XML文件中删除一行

读写同一文件bash / unix

使用SED从文件中删除一行,然后将输出重定向到同一文件

Bash-如何从一个文件中查找行作为另一文件中的行的一部分?

有没有办法在bash脚本中使用sed从csv的一行中删除字符串?

多个>>通过2个脚本重定向到同一文件,中途断句

Google脚本始终将文件上传到同一文件夹中

将同一文件中的2个位置输出到脚本中,然后回显

如何创建一个脚本来逐行读取文件并将它们连接成一个字符串?(Python 或 Bash)

如何检查两个不同的文件引用“字符串”是否引用同一文件?

如何编写动态bash脚本以打印行和列数据并更新同一文件中的相同数据?

如何从位于同一文件中的 JS 脚本更新 EJS 中的变量?

在不同的动作脚本文件(在同一文件夹中)中使用ActionScript类

检查文件名在 bash 脚本中包含一个字符串

如何检查一个文档中的一行是否适用于同一行,但在另一文档中