linux - 如何在shell脚本的变量中存储有空格的文件名
问题描述
嗨,我有一个名为 MYFILES.txt 的文本文件
当我运行 grep --null ".txt" MYFILES.txt 它正确显示带有空格字符的文件名
grep --null ".txt" MYFILES.txt
my file 1.txt
my file 2.txt
my file 3.txt
my file 4.txt
但是在 shell 脚本中,如果我有这样的东西,那么空格字符将被排除:我需要将每个文件名存储在 FILE 变量中的文本中,并包含空格字符
for FILE in $( grep --null ".txt" MYFILES.txt)
do
echo "${FILE}"
done
my
file
1.txt
my
file
2.txt
my
file
3.txt
my
file
4.txt
解决方案
如果文件名不包含换行符
grep .txt MYFILES.txt | while IFS= read -r file ; do
echo "$file"
done
推荐阅读
- python - 通过不同的 Makefile 目标维护相同的 Python 环境
- java - 我们可以在 Quarkus 中使用 spring-security-saml2-service-provider
- python - 使用 numpy.vectorize 或 DataFrame.apply 通过列列表传递函数?
- amazon-web-services - Spring Boot 和 Eclipse 是一回事吗?(AWS)
- json - Angular - 遍历 HTML 中的字符串化数据
- shell - 如何修复语法错误:文件意外结束
- web3 - 宠物收养教程(部署到网络)(dApp)
- angular - 如何创建一个下拉菜单作为语言选择器?角底
- python - 我正在使用 Huggingface 的预训练 Pegasus 模型获取 Inshorts 数据集的抽象摘要
- c# - 为什么我的 Firebase 查询给出的结果不一致?