在下面的文本中,我想跳过第一行,将$放在以Part1开头的行之前。我已经包括了我的剧本,但它不起作用。你能帮忙吗?
Input
------
Intro
Part1 Yellow
Part2 Red
Part3 Green
Part1 Yellow
Desired output:
--------------
$Part1 Yellow
Part2 Red
Part3 Green
$Part1 Yellow
Code:
awk 'NR>1 {$0~/Part1/($0="$ "$0)}1' myfile
Error:
awk: Syntax error Context is:
>>> NR>1 {$0~/Part1/( <<<
使用您显示的样本,请尝试以下awk
。简单的解释是,它跳过第1行(FNR>1
(条件,并检查一行是否以Part1
开头,然后在当前行的值前面添加$
。然后提及1
将打印编辑/未编辑的行。
awk 'FNR>1 && /^Part1/{$0="$"$0} 1' Input_file
如果您想跳过第一行而不打印它,我会在您的代码中进行以下更改:
awk 'NR>1 {if ($0 ~ /^Part1/) $0="$"$0;print}' file
或者更简洁:
awk 'NR > 1 {if (/^Part1/) $0="$"$0;print}' file
$Part1 Yellow
Part2 Red
Part3 Green
$Part1 Yellow