我需要找到匹配一些的字符串regexp pattern并将搜索结果表示为数组,以便用循环迭代它,我需要使用sed吗?一般来说,我想替换一些字符串,但在更换前分析它们.
使用sed和diff:
sed -i.bak 's/this/that/' input
diff input input.bak
Run Code Online (Sandbox Code Playgroud)
GNU sed将在替换之前创建备份文件,diff并将向您显示这些更改.但是,如果您不使用GNU sed:
mv input input.bak
sed 's/this/that/' input.bak > input
diff input input.bak
Run Code Online (Sandbox Code Playgroud)
另一种方法使用grep:
pattern="/X"
subst=that
while IFS='' read -r line; do
if [[ $line = *"$pattern"* ]]; then
echo "changing line: $line" 1>&2
echo "${line//$pattern/$subst}"
else
echo "$line"
fi
done < input > output
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
9805 次 |
| 最近记录: |