我希望整个原始文件的最后一列是文件名(没有路径名)。这似乎很简单,但每次尝试都未能实现。我的目标是将FLD0037变为FLD0 $ {ID}。
我尝试了以下内容:
cat FLD0037.txt | awk '{print $0, FILENAME;}' >FLD0037.test1.txt
test.1给出 - 在最后一栏。
cat FLD0037.txt | awk '{print $0, basename(FILENAME);}' >FLD0037.test2.txt
test.2是一个空文件
cat FLD0037.txt | awk '{print $0, basename;}' >FLD0037.test3.txt
cat FLD0037.txt | awk -F"/" '{print $0, $NF;}' >FLD0037.test4.txt
cat FLD0037.txt | awk -F"/" '{print $NF;}' >FLD0037.test5.txt
cat FLD0037.txt | awk '{print basename $0;}' >FLD0037.test6.txt
test.3,test.5和test.6看起来像原始文件,没有写在最后一栏。
test.4是原始文件,其数据在新列中重复。
谢谢,
答案 0 :(得分:0)
此处cat
超过useless因为Awk最终会读取标准输入(因此-
伪文件名)而不是实际文件。
与往常一样,修复很简单:不要使用无用的cat
。
awk '{print $0, FILENAME;}' FLD0037.txt >FLD0037.test1.txt