Unix ksh循环并将结果放入变量
我有一件简单的事情要做,但我是UNIX的新手。 所以,我有一个文件,每行都有一个ID。 我需要检查文件并将所有ID放入一个变量中 我在Java中尝试过类似的东西,但不起作用Unix ksh循环并将结果放入变量,unix,shell,Unix,Shell,我有一件简单的事情要做,但我是UNIX的新手。 所以,我有一个文件,每行都有一个ID。 我需要检查文件并将所有ID放入一个变量中 我在Java中尝试过类似的东西,但不起作用 for variable in `cat myFile.txt` do param=`echo "${param} ${variable}"` done 它似乎并没有将所有值添加到param中 谢谢。试试这个: param=`cat myFile.txt | tr '\n' ' '` tr命令tr将所有出现的\
for variable in `cat myFile.txt`
do
param=`echo "${param} ${variable}"`
done
它似乎并没有将所有值添加到param中
谢谢。试试这个:
param=`cat myFile.txt | tr '\n' ' '`
tr
命令tr
将所有出现的\n
(新行)转换为空格。然后我们将结果分配给param变量
可爱。awk
var=$(awk '1' ORS=" " file)
ksh
读取时-r行
做
t=“$t$行”
完成<文件
回音$t
我会使用:
param=$(<myFile.txt)
如果与引号一起使用,文件名将保留在单独的行中,如中所示:
cat $param
echo "$param"
请注意,Korn shell的特殊情况是“$”(param=“$”(
或
读取行时
做
param=“$param$行”$”\n
完成
缺少一些东西。在我的文件中,我有这样的东西:……AAA443618837935在参数中,我只有3793536188,所以前一行的最后一行和半行。你能发布一个更完整的文件片段吗?它是一个DOS文件,有CR搞乱了事情-请参阅我答案下面的注释。实际上,它可以显示,但我无法将其放入将其转换为变量/I能够显示所有行。这段代码看起来不错,但结果相同。我只有最后一行和前一行的一半。我的txt文件有什么问题?@CC:CRLF line endings?正如中所示,该文件来自DOS,因此您在变量中看到的是“name1\rllongername\rn3
”和输出sh只欠'n3ngername'。
\r'代表回车符。我得到了它。实际上我的txt文件不是UNIX格式。我只是打开了文件并从编辑器中选择了UNIX格式。我想一定有一些特殊字符不可见。非常感谢大家。
echo "$param"
param=
for variable in `cat myFile.txt`
do
param="${param} ${variable}"
done
perllib=$(dirname $(dirname $(which perl)))/lib
perllib=`dirname \`dirname \\\`which perl\\\`\``/lib
param="$(< myFile.txt)"
while read line
do
param="$param$line"$'\n'
done < myFile.txt