gpt4 book ai didi

bash - 如何在 shell 脚本中使用 echo 保留前导空格?

转载 作者:行者123 更新时间:2023-11-29 08:50:57 24 4
gpt4 key购买 nike

我有一个源文件,它是多个合并在一起的文件的组合。我的脚本应该将它们分成原始的单独文件。

每当我遇到以“FILENM”开头的行时,这意味着它是下一个文件的开头。

文件中的所有细节行都是固定宽度的;因此,我目前遇到一个问题,即以前导空格开头的行在不应该被截断的情况下被截断。

如何增强此脚本以保留前导空格?

while read line         
do
lineType=`echo $line | cut -c1-6`
if [ "$lineType" == "FILENM" ]; then
fileName=`echo $line | cut -c7-`
else
echo "$line" >> $filePath/$fileName
fi
done <$filePath/sourcefile

最佳答案

前导空格被删除,因为 read 将输入拆分为单词。为了解决这个问题,将 IFS 变量设置为空字符串。像这样:

OLD_IFS="$IFS"
IFS=
while read line
do
...
done <$filePath/sourcefile
IFS="$OLD_IFS"

关于bash - 如何在 shell 脚本中使用 echo 保留前导空格?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18055073/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com