Awk 如何仅在第一列中的单词末尾添加特定字符?
我需要以这种方式操作文件: 文件在-Awk 如何仅在第一列中的单词末尾添加特定字符?,awk,sed,Awk,Sed,我需要以这种方式操作文件: 文件在- 1 34566 34765 2 45678 45789 3 34567 34799 X 67895 66900 Y 34567 34890 文件输出 1_M 34566 34765 2_M 45678 45789 3_M 34567 34799 X_M 67895 66900 Y_M 34567 34890 谢谢 $ cat data 1 34566 34765 2 45678 45789 3 34567 34799 X 67895
1 34566 34765
2 45678 45789
3 34567 34799
X 67895 66900
Y 34567 34890
文件输出
1_M 34566 34765
2_M 45678 45789
3_M 34567 34799
X_M 67895 66900
Y_M 34567 34890
谢谢
$ cat data
1 34566 34765
2 45678 45789
3 34567 34799
X 67895 66900
Y 34567 34890
使用awk
:
$ awk '{print $1 "_M",$2,$3}' data
1_M 34566 34765
2_M 45678 45789
3_M 34567 34799
X_M 67895 66900
Y_M 34567 34890
$ sed 's/^\S*/&_M/' data
1_M 34566 34765
2_M 45678 45789
3_M 34567 34799
X_M 67895 66900
Y_M 34567 34890
使用sed
:
$ awk '{print $1 "_M",$2,$3}' data
1_M 34566 34765
2_M 45678 45789
3_M 34567 34799
X_M 67895 66900
Y_M 34567 34890
$ sed 's/^\S*/&_M/' data
1_M 34566 34765
2_M 45678 45789
3_M 34567 34799
X_M 67895 66900
Y_M 34567 34890
说明:
awk'{print$1“\M”、$2$3}'数据
打印出第一个字段
与“_M”连接,后跟第二个字段,然后是第三个字段。
请注意,awk
中的串联运算符是一个空格sed
命令:
sed的/^\s*/&_M/”数据
运行替换(s
命令)以
替代品^\S*
=>\S
表示空白字符,\S
表示非空白字符
空白字符,*
表示0或更多<代码>^是
确保匹配从行开始&
表示匹配的字符串^\S*
替换^\S*\u M
阅读,然后按照要求提问。谢谢你的代码。你能解释一下吗。我通过SED教程来解决这个问题,但是没有。如果有什么解释的话,会有帮助的。