我有两个问题。我有这样的输入
foo.o
bar.o
我需要用我选择的字符替换点(在这种情况下它是" D")并且我需要在每行的末尾附加"]。
我知道如何使用awk附加]
awk '{print $0"]"}'
但我不知道如何添加"同样,我的简单尝试是
awk '{print $0""]"}'
但正如预期的那样无效。
此外,我根本不知道如何更换点。
感谢您的帮助。
答案 0 :(得分:4)
.
是一个正则表达式元字符。把它放在一个字符类中:
awk '{gsub("[.]", "D", $0)}{print $0"]"}'
或双重逃避:
awk '{gsub("\\.", "D", $0)}{print $0"]"}'
要添加引号,请将其转义。要添加"]
,请说:
print $0"\"]"
答案 1 :(得分:2)
使用sed
:
$ sed 'y/./D/;s/$/]/' input.txt
fooDo]
barDo]
$
y/./D/
替换“。”的所有实例。用“D”。 y
命令是一个简单的字符串替换而不是正则表达式替换,因此.
在此命令中不需要任何特殊的转义。s/$/]/
匹配该行的结尾并有效地附加“]”。