Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/reporting-services/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
bash:在while循环中剪切时保留白色字符 好像读取行丢弃空白的第一个字符 while read line; do DB=$( echo "$line" | cut -c1-8); echo DB=$DB; echo $line; done < histogram.txt_Bash_While Loop_Cut - Fatal编程技术网

bash:在while循环中剪切时保留白色字符 好像读取行丢弃空白的第一个字符 while read line; do DB=$( echo "$line" | cut -c1-8); echo DB=$DB; echo $line; done < histogram.txt

bash:在while循环中剪切时保留白色字符 好像读取行丢弃空白的第一个字符 while read line; do DB=$( echo "$line" | cut -c1-8); echo DB=$DB; echo $line; done < histogram.txt,bash,while-loop,cut,Bash,While Loop,Cut,第1行“…7107”(.=空格)的预期结果 我真正得到的是“7107:(” 最后一行(“\uuuuuuuuuuu1888”)有效,因为我用下划线替换了空格 结果 我如何得到空白字符? 你需要2件事: 将IFS设置为read命令的空字符串:,而IFS=read-r line——这将保留变量中的所有空白 在您使用的所有地方引用变量:echo“$line” 当IFS=read-r行时;执行 DB=“${line:1:8}” echo“DB=$DB” 回音“$line” 完成

第1行“…7107”(.=空格)的预期结果 我真正得到的是“7107:(”

最后一行(“\uuuuuuuuuuu1888”)有效,因为我用下划线替换了空格 结果

我如何得到空白字符?

你需要2件事:

  • 将IFS设置为
    read
    命令的空字符串:
    ,而IFS=read-r line
    ——这将保留变量中的所有空白

  • 在您使用的所有地方引用变量:
    echo“$line”

  • 当IFS=read-r行时;执行
    DB=“${line:1:8}”
    echo“DB=$DB”
    回音“$line”
    完成

    bash参数substion可以接受一个子字符串,因此您不需要使用
    cut

    使用:
    IFS=
    as:
    而IFS=read-r line;do…
    使用
    DB=${line%%:*}
    IFS=:read-r DB_
    
          7107: ( 12,255,  0) #0CFF00 srgb(12,255,0)
          4514: ( 12,255,255) #0CFFFF srgb(12,255,255)
         11580: ( 30,  0,253) #1E00FD srgb(30,0,253)
         14365: (246,255,  0) #F6FF00 srgb(246,255,0)
         29576: (255,  0,  0) #FF0000 red
    ____188858: (255,255,255) #FFFFFF white
    
    while IFS= read -r line; do
      DB="${line:1:8}"
      echo "DB=$DB"
      echo "$line"
    done < histogram.txt