首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

使用gawk/awk/sed修改java文件(交换java函数参数)

使用gawk/awk/sed修改Java文件以交换函数参数是一种在命令行中使用文本处理工具来实现代码自动化修改的方法。这里我们将使用awk和sed来实现这个目标。

首先,我们需要了解Java函数参数的格式。一般来说,Java函数参数列表的格式如下:

代码语言:txt
复制
functionName(parameter1, parameter2, parameter3)

我们的目标是交换parameter1和parameter2。为了实现这个目标,我们可以使用以下命令:

代码语言:bash
复制
awk '{
    for (i=1; i<=NF; i++) {
        if ($i ~ /functionName\(/ && $(i+1) ~ /parameter1/ && $(i+2) ~ /,/ && $(i+3) ~ /parameter2/ && $(i+4) ~ /\)/) {
            temp = $(i+1);
            $(i+1) = $(i+3);
            $(i+3) = temp;
        }
    }
    print $0
}' input.java > output.java

这个命令会将所有匹配到的函数参数列表中的parameter1和parameter2进行交换。

接下来,我们需要使用sed命令来删除多余的空格和换行符。

代码语言:bash
复制
sed -i 's/\s\+/,/g' output.java

这个命令会将所有连续的空格替换为逗号。

最后,我们可以使用以下命令来检查修改后的Java文件:

代码语言:bash
复制
cat output.java

这个命令会显示修改后的Java文件内容。

总结:使用gawk/awk/sed修改Java文件可以实现交换函数参数的目标。这种方法可以在不使用IDE的情况下,快速地修改大量Java文件中的函数参数。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Shell 编程的老臣 - gawk

shell 的世界里有两个好兄弟:sedgawk. 今天讲 gawk....' _ 要注意的是两点: '{}' 成为 gawk 的固定格式,{} 是放置 gawk 命令的地方,而'' 是将命令当做字符串与其他选项或参数字符串隔离的分隔符。...而 6的6就是指文本文件中的第6列,以此类推,7 就是第 7 列,且取出来之后,可以对 6,7 做变更。 那么问题就来了: 是否能将内建变量取出来的值,做修改,再传回源文件做保存呢?...但马上就会有问题的是,函数必须重用。重复发明不必要的轮子,是低效的。因此 gawk 给出了函数库这个概念。 将所有的自定义函数归档到函数库中,在使用个别函数时候,只要引用这个库就可以了。...相信 Java 朋友不陌生,Python 朋友简直是秒懂,就是库引用嘛!

63720
  • linux awk命令详解

    史上最好用的免费SVN空间简介awk是一个强大的文本分析工具,相对于grep的查找,sed的编辑,awk在其对数据分析并生成报告时,显得尤为强大。...awk有3个不同版本: awk、nawk和gawk,未作特别说明,一般指gawkgawkAWK 的 GNU 版本。...ARGC 命令行参数个数 ARGV 命令行参数排列 ENVIRON 支持队列中系统环境变量的使用 FILENAME...其中print函数参数可以是变量、数值或者字符串。字符串必须用双引号引用,参数用逗号分隔。如果没有逗号,参数就串联在一起而无法区分。...这里使用for循环遍历数组 awk编程的内容极多,这里只罗列简单常用的用法,更多请参考 http://www.gnu.org/software/gawk/manual/gawk.html

    7.3K20

    Shell四剑客实操案例

    在Shell编程工具中,四剑客工具的使用更加的广泛,Shell编程四剑客包括:find、sed、grep、awk,熟练掌握四剑客会对Shell编程能力极大的提升。...其语法参数格式为: sed [-Options] [‘Commands’] filename;sed工具默认处理文本,文本内容输出屏幕已经修改,但是文件内容其实没有修改,需要加-i参数即对文件彻底修改;...如果用户希望在某个条件下脚本中的某个命令被执行,或者希望模式空间得到保留以便下一次的处理,都有可能使得sed在处理文件的时候不按照正常的流程来进行。这时可以使用SED高级语法来满足用户需求。...,以Aho、Weinberger、Kernighan三位发明者名字首字母命名为AWKAWK是一个行级文本高效处理工具,AWK经过改进生成的新的版本有Nawk、Gawk,一般Linux默认为GawkGawk...其语法参数格式为,AWK常用参数、变量、函数详解如下: awk ‘pattern + {action}’ file AWK基本语法参数详解: 单引号’ ‘是为了和shell命令区分开; 大括号{ }表示一个命令分组

    2.1K21

    linux实战(一)

    接着处理下一行,这样不断重复,直到文件末尾。文件内容并没有 改变,除非你使用重定向存储输出。Sed主要用来自动编辑一个或多个文件;简化对文件的反复操作;编写转换程序等。...(默认是基础正规表示法语法) -i :直接修改读取的文件内容,而不是输出到终端。...awk有3个不同版本: awk、nawk和gawk,未作特别说明,一般指gawkgawkAWK 的 GNU 版本。...这里大概给出awk中的一些学习目录如下: print和printf awk中同时提供了print和printf两种打印输出的函数。 其中print函数参数可以是变量、数值或者字符串。...现在我们要统计/etc/passwd文件中的:文件名,每行的行号,每行的列数 使用到的变量参数如下: FILENAME           awk浏览的文件名 NR

    2.2K10

    三大文本处理工具grep、sedawk

    使用正则表达式时使用(grep -E或者egrep) 6、  只输出文件中匹配到的文本部分,可以使用-o: 7、  要显示除匹配行外的所有行用-v选项: 8、  统计文件或文本中包含匹配字符串的行数...stdin中读取输入,不影响原本的内容 2、默认情况下sed命令打印替换后的文本,如果想连原文本一起修改加-i命令,-i: 3、  之前的sed都是替换第一个匹配到的内容,想要全部替换就要在末尾加g:...从第N个匹配开始替换 sed中的/为定界符,使用任何其他符号都可以替代 4、  移除空白行 三、  使用awk进行高级文本处理   awk是一款设计用于数据流的工具。...awk有很多内建的功能,比如数组、函数等,和C有很多相同之处。awk最大的优势是灵活性。...Examples: gawk '{ sum += $1 }; END { print sum }' file gawk -F: '{ print $1 }' /etc/passwd awk

    67530

    运维分享|Linux指令入门之文本查看(三)

    简介: 在 linux 处理文本时要用到工具,执行命令和结果很多时候也是文本方式,处理文本三剑客:grep sed awk。...一、文本查看命令在 linux 处理文本时要用到工具,执行命令和结果很多时候也是文本方式,处理文本三剑客:grep sed awk1 grep命令grep查看命令,我们可以从--help获取操作文档。..., --file=脚本文件 添加“脚本文件”到程序的运行列表 --follow-symlinks 直接修改文件时跟随软链接 -i[SUFFIX...其他非选项参数被视为输入文件,如果没有输入文件,那么程序将从标准输入读取数据。...使用命令 sed '1aHello' test.txt将Hello追加到文件中的第一行后面。如果我们没有使用保存模式,那么这个只是预览,再次查看就是没有被写入。

    19310

    Linux中文本处理三剑客:grep, sed, awk

    joshua317原创文章,转载请注明:转载自joshua317博客 https://www.joshua317.com/article/152 1. grep grep:一种强大的文本搜索工具,它能使用正则表达式匹配模式搜索文本...用法:sed [-options] 'script' file(s) 3. awk awk是一个强大的文本分析工具,相对于grep的查找,sed的编辑,awk在其对数据分析并生成报告时,显得尤为强大。...简单来说awk就是把文件逐行的读入,以空格为默认分隔符将每行切片,切开的部分再进行各种分析处理。awk有3个不同版本: awk、nawk和gawk,未作特别说明,一般指gawk。...gawkAWK 的 GNU 版本。 用法:awk [options] '{script}' file。...具体用法请参考: 一天一个 Linux 命令(19):grep 命令 一天一个 Linux 命令(20):sed命令 一天一个 Linux 命令(21):awk命令 本文为joshua317原创文章,转载请注明

    72920

    表格处理awk

    相对于 grep 的查找,sed 的编辑,awk 在其对数据分析并生成报告时,显得尤为强大。简单来说 awk 就是把文件逐行的读入,以空格为默认分隔符将每行切分,切开的部分再进行各种分析处理。...awk 有 3 个不同版本: awk、nawk 和 gawk,一般常用的就是 gawkgawkAWK 的 GNU 版本。我们这里演示的就是 gawk。...第一种是 awk 命令行模式,像普通 linux 命令一样使用 awk,这也是我们最常用的一种方式,在命令行中也可以使用一些 awk 编程程序语言,但是不多。...这个和 sed -f 的方法类似,awk 允许将一段 awk 程序写入一个文本文件,然后在 awk 命令行中用-f 选项调用并执行这段程序。当命令内容较多的时候,可以使用这种方法。...head #间隔多列 #2 修改分隔符以及输出分隔符 awk -F ":" '{print $1,$NF}' /etc/passwd awk -F ":" 'OFS="," {print $1,$NF

    62320

    10分钟让你掌握Linux常用命令(+1万+++收藏)

    -l选项根据文件的行数来分割文件,例如把文件分割成每个包含10行的小文件: split -l 10 date.file 三、文件内容操作(查看日志,更改配置文件修改文件内容 vim a.java...根据逗号,切分数据,并将第一列存在文件test01.txt中 awk -F "," '{ print $1 >> "test01.txt"} 3、sed(替换文件内容) sed [option]...删除replace.java中的空格(d是删除) sed -i '/^ *$/d' replace.java 5....将文件123.txt,按,切分,去除",按:切分后,将第一列存到文件test01.txt中 grep 'input' 123.txt | awk -F ',' '{print $2}' | sed 's...2046.0 free:已使用交换分区总量 2.0 used:空闲交换分区总量 859.6 avail:缓冲的交换区总量,内存中的内容被换出到交换区,然后又被换入到内存,但是使用过的交换区没有被覆盖

    2.9K10

    Linux进阶 03 文本处理三驾马车

    2 sed2.1 定义sed:流编辑器,一般用来对文本进行增加、删除、修改、查找增删查改sed只是修改打印出来的内容,不会修改文件2.2 用法sed [-options] 'script' file(...s)2.3 常见参数-n:禁止显示所有输入内容,只显示经过sed处理的行(常用)-e:直接在命令模式上进行sed的动作编辑,接要执行的一个或多个命令-f:执行含有sed动作的文件-r:sed的动作支持的扩展正则...(默认基础正则)-i:直接修改读取的文件内容,不输出-i修改文件不接受cat传进来的文件,直接sed -i 文件名2.4 script的内容:图片ript' address:2:第2行2,4:第2行到第...,通常与-n参数合用删除第一行常用 第一行往往为标题行三驾马车中都使用单引号!...在后用tr进行大小写替换与用sed进行大小写替换的区别3 awk/gawk编程语言,可对文本和数据进行处理3.1 常见参数-F fields 设置字段分隔符3.2 用法awk [options] '{script

    18120

    Linux进阶-Day3

    不保存修改,强制退出注意Windows系统文件格式与Linux系统不一样,将Windows的文件上传后需要转换格式,才能使用Linux命令操作文本处理三架马车-grep sed awkgrep 强大的文本搜索工具...匹配1次或者多次 + 匹配0次或者多次sed:流编辑器,一般用来对文本进行增删改查常见参数:-n :禁止显示所有输入内容,只显示经过sed处理的行(常用)-e :直接在命令模式上进行 sed 的动作编辑...,接要执行的一个或者多个命令-f :执行含有 sed 动作的文件-r :sed 的动作支持的扩展正则(默认基础正则)-i :直接修改读取的文件内容,不输出。...,把pattern替换成new,默认只替换一个,可以指定flagsy∶转换,实现字符一对一转换,格式 ‘y/abc/ABC/'p∶print,把匹配或修改过的行打印出来,通常与–n参数合用awk:也称...gawk,编程语言,可对文本和数据进行处理常见参数:-F,fields,设置字段分隔符;用法:awk options '{script}' file基础结构: ' {script} '匹配结构: ' /

    9510

    Linux学习----文本三剑客——sed(马哥教育原创)

    还有一个叫awk的,在Linux上叫做gawk(gnu awk),它是一个文本格式化工具,我们下一篇文章再说。...; -i: 直接修改文件; 地址定界: #: 指定行; $: 最后一行; /regexp/:任何能够被regexp所匹配到的行;sed ‘/^#/d’ /etc/fstab #删除以井号开头的行 \%...$@@'Sed不仅有一个模式空间,还有一个保持空间,它可以帮助sed暂时存储一些东西以便后续的使用。...还有一个叫awk的,在Linux上叫做gawk(gnu awk),它是一个文本格式化工具,我们下一篇文章再说。...; -i: 直接修改文件; 地址定界: #: 指定行; $: 最后一行; /regexp/:任何能够被regexp所匹配到的行;sed ‘/^#/d’ /etc/fstab #删除以井号开头的行

    1.4K30

    详解流编辑器 sed 和 编程语言 awk

    文件内容如下: s/public/PUBLIC/ s/north/NORTH/ sed -f test.sed test.in (二)sed 命令语法 sed_cmd:使用格式:[address...awk 与 grep、sed 结合使用,将使 shell 编程更加容易 Linux 下使用awkgawk awk 逐行扫描输入 (可以是文件或管道等),按给定的模式查找出匹配的行,然后对这些行执行...与 sed一样,awk不会修改输入文件的内容。 可以使用重定向将awk的输出保存到文件中。...(一)awk简单用法 用法示 选项 -F 指定输入记录字段的分隔符,默认使用环境变量IFS的值 -f 从指定文件读取awk_script -v 为awk设定变量 The IFS is a special...(六)更多awk awk不仅是一个命令,它更是一个编程语言 变量 内部变量      awk ' {print NR,$0} ' #给文件加上行号 自定变量 函数 内置函数 自定义函数      awk

    1.2K00
    领券