脚本在文本文件的每一行开头写入文件的名称

脚本在文本文件的每一行开头写入文件的名称

我想编写一个 shell 脚本,允许我打开一个具有特定名称的文本文件,并在每行开头写上文件的名称。因此,如果我的文件名为“test”,并且它有三行:

SCORE1 567
SCORE2 434
SCORE3 789 

脚本将打开它并将其更改为:

test SCORE1 567 
test SCORE2 434
test SCORE3 789 

然后它应该保存它并覆盖原始文件。

理想情况下,脚本会对特定文件夹中的所有文件执行此修改,并在每个文件的每一行中写入该特定文件的名称。

一旦此过程完成,我会将这些文件提供给另一个脚本,该脚本将它们合并为一个文件,稍后将使用电子表格进行分析。

你能帮我吗?我有一些想法,但我想读一下你的。我几乎没有编写 shell 脚本的经验。

答案1

您可以使用以下脚本,

#!/bin/bash
awk -v var="$1" '{print var" "$0 }' "$1" > /tmp/temp.txt
mv /tmp/temp.txt "$1"

授予脚本执行权限,如下所示chmod +x scriptname

以如下方式运行脚本,

./scriptname test

假设“test”是您要修改的文件,并且您正在从文件“test”所在的同一文件夹运行脚本。

相关内容