![当目录列表存储为变量时,为什么每行都缺少换行符?](https://linux22.com/image/760098/%E5%BD%93%E7%9B%AE%E5%BD%95%E5%88%97%E8%A1%A8%E5%AD%98%E5%82%A8%E4%B8%BA%E5%8F%98%E9%87%8F%E6%97%B6%EF%BC%8C%E4%B8%BA%E4%BB%80%E4%B9%88%E6%AF%8F%E8%A1%8C%E9%83%BD%E7%BC%BA%E5%B0%91%E6%8D%A2%E8%A1%8C%E7%AC%A6%EF%BC%9F.png)
在 Ubuntu 20.04 中,当我运行此命令时,得到以下结果:
在 CLI 上:
#find /home/ftpusers/ -name '*.jpg' -type f -printf '%p %u %TY%Tm%Td%TH%TM%.2TS\n' | sort --stable --reverse --key=3,4
产量:(完美!)
/home/ftpusers/1800wls1/1800WLS610Entry_20200505055737010_GH53J.jpg 5501 20200505115737
/home/ftpusers/1800wls1/1800WLS610Entry_20200505055453330_0207.jpg 5501 20200505115453
/home/ftpusers/1800wls1/1800WLS610Entry_20200505055033850_FPM3494.jpg 5501 20200505115034
/home/ftpusers/1800wls1/1800WLS610Entry_20200505054800520_MKR1529.jpg 5501 20200505114801
/home/ftpusers/1800wls1/1800WLS610Entry_20200505054755850_C0NTRACT.jpg 5501 20200505114755
/home/ftpusers/1800wls1/1800WLS610Entry_20200505054501710_HYY8462.jpg 5501 20200505114501
但是,当我尝试在脚本中捕获相同命令的输出时,换行符会被忽略,并且所有数据都会集中到一行而没有换行符。
就像这样:
#!/bin/bash
files=$(find /home/ftpusers/ -name '*.jpg' -type f -printf '%p %u %TY%Tm%Td%TH%TM%.2TS\n' | sort --stable --reverse --key=3,4)
echo $files
产量:
/home/ftpusers/1800wls1/1800WLS610Entry_20200505045623550_J4171.jpg 5501 20200505105624 /home/ftpusers/1800wls1/1800WLS610Entry_20200505044851810_C0NTRACT
.jpg 5501 20200505104852 /home/ftpusers/1800wls1/1800WLS610Entry_20200505044440130_7731.jpg 5501 20200505104441 /home/ftpusers/1800wls1/1800WLS610Entry_20200
505044243730_CC4480.jpg 5501 20200505104244 /home/ftpusers/1800wls1/1800WLS610Entry_20200505043703450_55L07.jpg 5501 20200505103707 /home/ftpusers/1800wls1/1
800WLS610Entry_20200505041813080_MJ4465.jpg 5501 20200505101814 /home/ftpusers/1800wls1/1800WLS610Entry_20200505041115600_C0NTRACT.jpg 5501 20200505101118 /h
ome/ftpusers/1800wls2/1800WLSSanFelipeExit_20200504212713750_CMV72.jpg 5502 20200505022717 /home/ftpusers/1800wls2/1800WLSSanFelipeExit_20200504212634020_BH7
X433.jpg 5502 20200505022640 /home/ftpusers/1800wls2/1800WLSSanFelipeExit_20200504211114600_LTM4327.jpg 5502 20200505021117 /home/ftpusers/1800wls2/1800WLSSa
nFelipeExit_20200504211021870_67225Y9.jpg 5502 20200505021027
如何保留每行的换行符?我需要一次处理一行。
我甚至尝试过这个:
#!/bin/bash
find /home/ftpusers/ -name '*.jpg' -type f -printf '%p %u %TY%Tm%Td%TH%TM%.2TS\n' | sort --stable --reverse --key=3,4 > /tmp/filelist
files=$(cat /tmp/filelist)
filecount=$(echo $files | wc -l)
echo $files
执行时,$filecount = 1(因为所有数据只有一行!)并且 $files 的回显会产生一行集中在一起的数据。
提前致谢!