bash - awk 系统调用

标签 bash awk

我想使用 awk 和 system() 函数来移动几个目录。

我有一个文件,我想使用 awk 名称 file.cfg 进行处理,该文件按以下方式组织:

/path1 /path2 
/some_path /some_other_path 
and so on..

每个第一条路径与第二条路径由空格分隔 所以我是这样做的:

awk '{system(mv -R $1" "$2)}' file.cfg

但它不起作用,我明白了

sh: 0/home/my_user/path1: No such file or directory

但是 file.cfg 看起来像这样:

/home/my_user/path1 /home/my_user/path2

并且/home前没有0。那么我在这里缺少什么?

最佳答案

你必须引用你给system的命令:

awk '{system("mv -R " $1 " " $2)}' file.cfg

目前 mv -R 被解释为变量 mv 的值减去 R 的值,即 0 因为两者都没有定义。

关于bash - awk 系统调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15823216/

相关文章:

bash - 如何在当前终端 session 中设置语言环境?

bash - 使用 bash 脚本启动屏幕,然后分割屏幕并调整屏幕大小

bash - 无法理解 .bashrc 中的一行

awk - 如何使用 awk 使用非贪婪的正则表达式在嵌套分隔符中提取数据

bash - 2013: “Lost connection to MySQL server at '握手:读取初始通信数据包',尝试连接时系统错误:115”

bash - 通过管道时为脚本传递参数

bash - 使用 awk getline bash 从指定时间范围内的日志文件中提取数据

bash - 使用 bash 脚本解析文件

AWK:基于现有列创建新列

regex - 除非遇到两个连续的新行,否则如何为每两行插入一个新行?