我有以下文本文件:
aaaaa dddd xxxxxx
ddddd rrrr xxxxxx
wwwww eeee xxxxxx
我希望输出如下:
aaaaa dddd xxxxxx
aaaaa dddd yyyyyy
ddddd rrrr xxxxxx
ddddd rrrr yyyyyy
wwwww eeee xxxxxx
wwwww eeee yyyyyy
答案 0 :(得分:3)
可能的解决方案可能如下所示:
$0
在此解决方案中,我们首先打印每一行($1, $2
),然后我们添加一个记录分隔符(RS,默认情况下等于换行符),然后我们重复第一列和第二列{{1} }。最后,我们手动添加字符串“yyyyyy”。
以下是示例输出:
aaaaa dddd xxxxxx
aaaaa dddd yyyyyy
ddddd rrrr xxxxxx
ddddd rrrr yyyyyy
wwwww eeee xxxxxx
wwwww eeee yyyyyy
当然,如果需要,我们可以使用正则表达式自动将x
替换为y
。
awk -F" " '{a=$3; gsub(/x/,"y",a); print $0 RS $1,$2," "a}' inputfile
答案 1 :(得分:2)
这可能适合你(GNU sed):
sed 'p;s/x/y/g' file
打印该行,然后将所有x
替换为y
,然后重新打印。
或者也许:
sed '/x/p;s//y/g' file