我想使用程序基本名称(或某个其他程序)对使用空格分隔的数据中的一列中的每个字符串应用更改。具体而言,我有数据的形式如下列:使用命令替换和Bash实用程序编辑空格分隔数据中的字符串列
string string string /afs/address/user/directory1 string string string string
我想改变的数据(在第四列中的字符串),以便它显示如下:
string string string directory1 string string string string
这可能可以使用第四列每行的基本名称等程序来实现。我想要的解决方案将包含某种命令替换,以便可以在编辑列的每一行时使用基本名称以外的其他程序。因此,一些诸如以下可能会出现在该解决方案:
"$(basename $4)",
其中$ 4代表列4行,我想我知道我会在每一行周期明确使用低效的代码,但我想有是一种使用类似awk的更高效的方法。你会对如何解决这个问题有任何建议吗?
谢谢您对此有帮助。如果我在做一些愚蠢的事情(原谅我不熟悉awk),请原谅我,但我在这方面遇到了一些困难。当我执行该命令时,会出现第二个关闭链括号中指示的语法错误。有什么显而易见的,我做错了吗? – d3pd 2013-02-25 15:48:40
对不起,它错过了sub()命令的关闭“)”。我现在修好了。 – 2013-02-25 16:03:21
啊,非常好。这是完美的。非常感谢! – d3pd 2013-02-25 18:07:06