如何使用 awk 替换文件中所有行的前 100 个字符?此文件中没有字段分隔符。所有字段都是固定宽度。鉴于数据的变化,我无法使用搜索和替换。
问问题
119 次
3 回答
2
怎么样sed
?用 say 替换前 100 个字符A
:
$ sed -r 's/.{100}/A/' file
如果您对结果感到满意,请使用以下命令重写文件-i
:
$ sed -ri 's/.{100}/A/' file
于 2014-03-04T16:57:27.367 回答
1
使用纯外壳。
#!/usr/bin/env bash
# read each line into shell variable REPLY
while read -r ; do
echo "REPLACE text ... ${REPLY:100}"
done <file
解释
REPLY
是 shell 变量,请参阅http://www.gnu.org/software/bash/manual/html_node/Bash-Variables.html。Set to the line of input read by the read builtin command when no arguments are supplied
${REPLY:100}
- 获取 100 个字符后的字符串。
于 2014-03-05T01:20:36.763 回答
1
awk '{print "replacing text..." substr($0,100)}'
于 2014-03-04T16:57:44.303 回答