1 xuyinan503 2015-11-21 23:03:30 +08:00 test.xml 啥内容 |
![]() | 2 fnmsd OP |
3 xuyinan503 2015-11-21 23:10:44 +08:00 |
![]() | 4 RickyBoy 2015-11-21 23:13:59 +08:00 覆盖掉开头部分什么意思? 正常应该输出 test test:123456 |
5 Arthur2e5 2015-11-22 01:14:34 +08:00 是不是因为 Windows CRLF 所以被 $line 里的 \r 干了? |
6 Arthur2e5 2015-11-22 02:18:05 +08:00 echo 之加一个 `line=${line%$'\r'}` 去掉 CR 就好了。 其实你完全用不着 sed : ```Bash while IFS='' read -r -u 4 line; do [[ $line =~ <name>(.*)</name> ]] || continue printf '%s\n' "${BASH_REMATCH[1]}:123456" done ``` |