我需要以这种方式操作文件:
档案输入 -
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
谢谢,
答案 0 :(得分:2)
$ 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
:
$ 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}' data
打印出第1个字段
与" _M"连接然后是第二场,然后是第三场。
请注意awk
中的连接运算符是一个空格。至于sed
命令:
sed 's/^\S*/&_M/' data
运行替换(s
命令)
替代^\S*
=> \s
表示空白字符,\S
表示非空格字符
空格字符*
表示0或更多。 ^
是一个锚点
确保从行开始匹配。&
表示匹配的字符串^\S*
替换为^\S*_M
。