我是shell编程的初学者,我想用shell替换shell的第三个单词,每行第一个单词。单词由“:”分隔。你能帮助我吗?很多。
答案 0 :(得分:3)
让我们从这个测试文件开始:
each
用“每行第一个单词”替换“文本的第三个单词”:
$ cat file
one:two:three:four:five
up:and:down
1:2:3:4
工作原理:
$ awk -F: '{$3=$1} 1' OFS=: file
one:two:one:four:five
up:and:up
1:2:1:4
告诉awk使用-F:
作为输入的字段分隔符。
:
告诉awk用第一个单词替换第三个单词。
$3=$1
是awk用于打印线的神秘简写。
1
告诉awk在输出中使用OFS=:
作为字段分隔符。
:
$ while IFS=: read a b c d ; do echo "$a:$b:$a:$d"; done <file
one:two:one:four:five
up:and:up:
1:2:1:4