可能重复:
problem in using awk
更具体地说,这是我的项目代码
if [ "$FORMAT" = "java" ]; then
cat $INPUT_FILE | awk -F":" '\
/^$/ { print "" }\
/^\/\/.*/ { print " "$0}\
/:string:/ { print " public static final String "$1" = "$3";" }\
/:char:/ { print " public static final char "$1" = "$3";" }\
/:ullong:/ { print " public static final long "$1" = "$3";" }\
/:ulong:/ { print " public static final int "$1" = "$3";" }\
/:long:/ { print " public static final int "$1" = "$3";" }\
' >> $CONST_FILE
fi;
现在我需要截断$ 3(这个值实际上是从另一个文件中读取)分为两部分(仅适用于ullong)。让我们说
$3=1256985361455ULL
我需要截断到1256985361455和ULL。 (只有当它是ullong) 请帮我解决这个问题。
我尝试在下面使用另一个awk,但最终陷入了混乱。
/:ullong:/ { print " public static final long "$1" = "$3";" }\
答案 0 :(得分:0)
你是说你只想在$ 3中插入一个空格?只需使用sub:
bash-3.2$ cat input one two 123456789ULL one two 123456789UL bash-3.2$ awk '{ sub( /ULL$/, " ULL", $3 ); print }' input one two 123456789 ULL one two 123456789UL