通过do while一行一行地进行编辑

8 浏览
0 Comments

通过do while一行一行地进行编辑

如何在while循环中编辑文件的一行,代码除了在“if”语句内部的部分以外都有效,有人之前做过吗?(今天的第二个问题,谢谢)\n

#!/bin/bash
export ELMS_STORAGE="/loc1/f1.csv" 
export CUSTOMER_LIST="/loc2/f2.csv"
while read -r ELMS_SIZE ELMS_NAME ELMS_ENV do while IFS=, read -r
CUSTOMER_ENV CUSTOMER_URI CUSTOMER_NAME CUSTOMER_SCHEMA_OWNER
CUSTOMER_DB_INSTANCE OTHER do
if [ "${ELMS_NAME}" = "${CUSTOMER_URI}" ]; then
#### 向f2.csv添加一个新项
${ELMS_STORAGE}.${ELMS_ENV}="${ELMS_ENV} ${CUSTOMER_URI}"   ### 不起作用
fi
done < <(tac $CUSTOMER_LIST) done < <(tac $ELMS_STORAGE)
exit

\n编辑前的f2.csv\n

monkey
dog
tiger

\n编辑后的f2.csv\n

monkey brown 
bird green 
cat yellow

0
0 Comments

问题原因:使用paste命令时,可能会出现错误的结果,原因是输入的文件格式不正确。

解决方法:可以尝试使用paste命令的正确语法来解决该问题。在这种情况下,应该使用paste f1.csv f2.csv命令将两个文件的内容合并起来,并以列的形式显示出来。

以下是解决问题的示例代码和输出结果:

$ paste f1.csv f2.csv 
monkey  brown
dog green
tiger   yellow

通过以上代码,我们可以看到将两个文件f1.csv和f2.csv合并的结果,每一行的内容以列的形式显示出来。这就解决了paste命令可能出现错误结果的问题。

0