我想换一个数字与前一个数字: 例如。 123456至214365 如何在bash环境中使用sed / awk执行此操作?
答案 0 :(得分:6)
echo 123456 | sed 's/\([0-9]\)\([0-9]\)/\2\1/g'
答案 1 :(得分:1)
根据您对x13n's answer的评论,它回答了您的问题,您似乎想要更具体地说明您交换的数字。
我会使用awk
来交换第二列中的所有数字对:
bash-3.2$ gawk -V | sed -n 1p
GNU Awk 4.0.0
$ echo 254789123456,5306153059630141,639027041150453 | gawk -F',' '
BEGIN {
OFS=","
}
{
$2 = gensub(/(.)(.)/, "\\2\\1", "g", $2)
print
} '
254789123456,3560510395361014,639027041150453
您已经提出了一些关于sed
和awk
的问题,我建议您抓住sed & awk, Second Edition。
我还建议您阅读Jon Skeet的writing the perfect question指南,这将有助于您在提出此类问题时获得所需的答案。