gpt4 book ai didi

bash - 如何从 awk 的输入 FILENAME 变量中删除路径 - basename 是否可用?

转载 作者:行者123 更新时间:2023-11-29 09:19:55 24 4
gpt4 key购买 nike

下面的命令

gawk '{print $0, FILENAME}' input.txt > result.txt

其中 input.txt 是:

FIXED3 LENGTH7      FILE FORMAT     00001
FIXED2 LENGTH8 FILE FORMAT 00002
FIXED2 LENGTH20 FILE FORMAT 00003
FIXED1 LENGTH20 FILE FORMAT 00004

产生以下期望的结果:

FIXED3 LENGTH7      FILE FORMAT     00001 input.txt
FIXED2 LENGTH8 FILE FORMAT 00002 input.txt
FIXED2 LENGTH20 FILE FORMAT 00003 input.txt
FIXED1 LENGTH20 FILE FORMAT 00004 input.txt

但是,如果使用如下文件的路径:

gawk '{print $0, FILENAME}' /cygdrive/c/dev/data/input.txt > result.txt

然后附加到每一行的 FILENAME 也包括路径。这就是我要更正的内容我想要与上面第一个场景相同的结果。

FIXED3 LENGTH7      FILE FORMAT     00001 /cygdrive/c/dev/data/input.txt
FIXED2 LENGTH8 FILE FORMAT 00002 /cygdrive/c/dev/data/input.txt
FIXED2 LENGTH20 FILE FORMAT 00003 /cygdrive/c/dev/data/input.txt
FIXED1 LENGTH20 FILE FORMAT 00004 /cygdrive/c/dev/data/input.txt

最佳答案

FILENAME/分割成一个数组并输出数组的最后一个元素:

awk '{n=split(FILENAME,array,"/"); print $0, array[n]}' /cygdrive/c/dev/data/input.txt

关于bash - 如何从 awk 的输入 FILENAME 变量中删除路径 - basename 是否可用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55149255/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com