根据文件输出创建名称/值对

时间:2014-06-11 11:35:29

标签: bash

我想以{:1>的形式格式化cat myFile.txt的输出

app1=19
app2=7
app3=20
app4=19

通过各种命令使用管道输出的某种组合。
实现这一目标最简单的方法是什么? 我尝试过使用cut -f2,但这并没有改变输出,这很奇怪。

这是基本的命令/文件输出:

[user@hostname ~]$ cat myFile.txt
       1402483560882 app1                                    19
       1402483560882 app2                                    7
       1402483560882 app3                                    20
       1402483560882 app4                                    19

3 个答案:

答案 0 :(得分:4)

根据您的意见:

awk '{ print $2 "=" $3 }' myFile

输出

app1=19
app2=7
app3=20
app4=19

答案 1 :(得分:1)

另一种解决方案,使用sed和cut:

cat myFile.txt | sed 's/ \+/=/gp' | cut -f 3- -d '='

或使用tr和cut:

cat myFile.txt | tr -s ' ' '=' | cut -f 3- -d '='

答案 2 :(得分:0)

你也可以尝试这个sed oneliner,

$ sed 's/^\s*[^ ]*\s\([^ ]*\)\s*\(.*\)$/\1=\2/g' file
app1=19
app2=7
app3=20
app4=19