用 sed 打印第 N 行与 while ... read 的区别?

问题描述 投票:0回答:1
$ cat inputfile| while read i ;do echo ${#i}; done
12550
12972
13035
... snip
0
$ for i in {1..21} ; do sed -n "$i"p inputfile |wc -c ; done
13226
13680
13759
... snip
1

输入文件包含连接在一起的 21 个 JSON 对象。当它与第二个一起工作时,尝试将第一个上的每个错误提供给 jq 。明显有区别,但是什么?

(两个循环的输出都是 21 行长。)

bash
1个回答
0
投票

read
修剪前导和尾随空格并消耗反斜杠。

$ echo ' \" ' | { read i; echo ${#i}; }
1
$ echo ' \" ' | { IFS= read -r i; echo ${#i}; }
4
$
© www.soinside.com 2019 - 2024. All rights reserved.