bash - 将 grep 与 for 循环一起使用时不必要的换行符
问题描述
我有这样的设置:
#read a list of files
tr -d \\015 < sample.txt | while IFS=, read -r NAME
do
#grep for lines and do stuff
for VAR in $(grep '.*: {$' $NAME)
do
do some stuff
done
done
问题是这样的。它不起作用,因为 $(grep '.*: {$' $NAME) 中的 for VAR 在其结果中添加了不必要的空格和换行符。
如果我回显 $VAR 我会得到以下信息:
blahblahblah:
{
现在考虑这段代码:
#read a list of files
tr -d \\015 < sample.txt | while IFS=, read -r NAME
do
VAR=$(grep '.*: {$' $NAME)
echo $VAR
done
如果我在这里回显 $VAR,我会得到:
blahblahblah: {
为什么我在第一个示例中得到额外的换行符?
解决方案
推荐阅读
- java - java.lang.IllegalStateException:来自 spring-integration-aws 库的连接池关闭异常
- html - 停止表单输入溢出滚动div内容
- ios - SKStoreReviewController 有没有委托方法?
- c# - EF Core 与 Shadow 属性的一对一关系作为使用 Fluent API 的键
- angular - 角材料力矩适配器未找到 404
- javascript - 重复调用 fetch API 以从同一域的多个网页收集数据的更优化替代方案
- spring-boot - 如何使用 mockito 和 junit 来测试我的 spring boot rest api?
- firefox - SVG 模式仅在 Firefox 上不可见
- java - Java 8 DateTimeFormatter 拒绝带有偏移量的正确 ISO 8601 日期/时间
- python - 当连续值的数量低于某个阈值时,在数据帧中查找连续值的索引