Shell编程 - 用另一个

时间:2016-05-07 19:53:18

标签: linux shell awk sed

我是shell编程的初学者,我想用shell替换shell的第三个单词,每行第一个单词。单词由“:”分隔。你能帮助我吗?很多。

1 个答案:

答案 0 :(得分:3)

让我们从这个测试文件开始:

each

使用awk

用“每行第一个单词”替换“文本的第三个单词”:

$ 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=:作为字段分隔符。

使用shell

:

使用sed

$ 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