示例:我想分割$2
输入文件,放置一个tab
后模式surname
输入:
name surname1
name surname30000
name surname456
期望的输出:
name surname 1
name surname 30000
name surname 456
答案1
一个awk选择:
awk 'match($2,/[0-9]+$/) {printf("%s\t%s\t%s\n", $1, substr($2,0,RSTART), substr($2,RSTART,RLENGTH))}' filename
这将仅匹配第二列末尾的数字字符串。
答案2
您可以查找第一个数字并将其替换为制表符后跟数字,使用:
sed 's/[0-9]/\t&/' file
答案3
sed -e 's/\([0-9]\)/\t\1/' input.txt
在每行的第一个数字之前添加一个制表符。
输出:
name surname 1
name surname 30000
name surname 456
答案4
数据可能位于特定的柱子,例如 16:
sed -e 's/^\(.\{15,15\}\)/\1 /'
或者,第三个字段中感兴趣的数据可能不是数字:
sed -e 's/^\([[:alpha:]]\+[[:space:]]\+\)\([[:alpha:]]\+\)/\1\2 /'
其中任何一个都会在数据中的数字(或其他非字母)字符之前放置一个空格。
以供参考: