Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/flash/4.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
Shell IFS'\n';在AIX盒中不工作_Shell - Fatal编程技术网

Shell IFS'\n';在AIX盒中不工作

Shell IFS'\n';在AIX盒中不工作,shell,Shell,我试图读取一个有几行的文件,并按原样打印。 但我在IFS的新产品线并没有像预期的那样工作。这是在AIX中实现的 下面是我的剧本 #!/bin/ksh #set -x old_IFS=$IFS # save the field separator IFS=$'\n' LABELFILE=/home/david/label.txt OUTPUT_FILE=/home/david/label_out.txt for i in $(cat $LABELFILE) do echo "$i"

我试图读取一个有几行的文件,并按原样打印。 但我在IFS的新产品线并没有像预期的那样工作。这是在AIX中实现的

下面是我的剧本

#!/bin/ksh

#set -x
old_IFS=$IFS      # save the field separator
IFS=$'\n'
LABELFILE=/home/david/label.txt
OUTPUT_FILE=/home/david/label_out.txt

for i in $(cat $LABELFILE)
do
echo "$i" >> $OUTPUT_FILE
done
label.txt 我的输出文件(label_out.txt->

Hello
a
cy

aghu
aghu
Hello
avy
You are
aughty
Good
iece
预期产出->

Hello nancy
naghu naghu
Hello navy
You are naughty
Good niece
尝试:


(只有回车符,没有多余的空格。)

在单引号内,
\n
表示反斜杠和
n
。在双引号内,它可能表示换行符,但(除了在
bash
中)通常不是。与单引号的
'\n'
问题(您有解决方法)分开,整个
for i in$(cat$file)
的东西很奇怪。使用
读取
加上i/O重定向,你会做得更好。(请注意,你强制shell读取内存中的整个文件,然后一次读取一行,而不是让它一次读取一行。)这取决于具体情况。
read
builtin需要在每次执行后将文件指针保留在正确的位置,因此它将倾向于执行更多的系统调用(当从管道中读取时,需要一次读取一个字节,当从其他类型的文件中读取时,通常也会发生这种情况)。如果文件足够大,分叉
cat
的开销可以摊销,并且足够小,可以轻松地放入内存,那么
for i in$(cat$文件)
方法可能会更快。
Hello nancy
naghu naghu
Hello navy
You are naughty
Good niece
IFS='
'