如何使用awk添加文件的输出,如下所示:
像:
cat /tmp/lista_table_vertical.txt | awk '{print "major_compact " $1}'
major_compact game_activities
major_compact interatividade_activities
major_compact testeCompression
major_compact testeCompression2
major_compact testeSlowQuery
major_compact users_algorithms
major_compact users_algorithms2
我想插入"'"在开始和结束时。 例如:
major_compact 'game_activities'
major_compact 'interatividade_activities'
major_compact 'testeCompression'
major_compact 'testeCompression2'
major_compact 'testeSlowQuery'
major_compact 'users_algorithms'
major_compact 'users_algorithms2'
感谢。
答案 0 :(得分:5)
一种解决方案是使用ascii表示:
\047
检查
man ascii
最后:
awk '{print "major_compact \047" $1 "\047"}' /tmp/lista_table_vertical.txt
另一个(可能难以记住和阅读)解决方案:
awk 'BEGIN{print "major_compact '\''" $1 "'\''"}' /tmp/lista_table_vertical.txt
答案 1 :(得分:2)
您可以使用:
awk -v sq="'" '{print "major_compact " sq $1 sq}' /tmp/lista_table_vertical.txt
即。将单引号作为变量传递给awk并在任何地方使用var name。
PS:您也不需要使用不必要的cat
。
答案 2 :(得分:2)
如果您要多次执行此操作,最简单的方法是创建一个包含以下内容的script.awk
文件:
{ printf "major_compact '%s'\n", $1 }
然后运行
awk -f script.awk /tmp/lista_table_vertical.txt
这样做可以避免在shell命令行中转义引号的所有混乱。如果您只需要输入一次,那么其他答案中的其中一个单行将为您工作正常(但这可能更容易在第一时间正确,即使如此 - 如果您有为了使它正确,你必须以某种形式或形式,不止一次地输入它。