unix - 在 AWK 中为多个文件更改 FS

标签 unix awk fs

我正在尝试读取 AWK 脚本中的多个文件,但是当我在文件之间进行更改时,字段分隔符 (FS) 也需要更改。此时我得到:

FILENAME=="A.txt"{
    FS=";"
    //DoSomething
}
FILENAME=="B.txt"{
    FS=" - "
    //DoSomething
}

但是您可能知道,文件的第一行不会正确设置 FS。我该如何解决这个问题?

最佳答案

您可以在命令行指定字段分隔符:

awk -f a.awk FS=";" A.txt FS=" - " B.txt

这样,每个文件的字段分隔符都会改变。
来自 http://www.delorie.com/gnu/docs/gawk/gawk_82.html :

Any awk variable can be set by including a variable assignment among the arguments on the command line when awk is invoked





With it, a variable is set either at the beginning of the awk run or in between input files.

关于unix - 在 AWK 中为多个文件更改 FS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23561985/

相关文章:

go - 从伪终端获取先前的输入

unix - 如何在unix中删除csv中的空格

mysql - 创建 sql 转储并将其保存到远程

linux - 如何在shell脚本中递归使用粘贴命令

javascript - 在 Node 中使用 fs.readFile 串联读取文件?

javascript - 如何在 fs.existsSync 或 statSync 或 readFileSync 内部使用通配符

regex - 使用 -f 选项的 grep 或 fgrep 没有输出不起作用

linux - 我有一个apache软件版本的文件记录,需要根据版本对它们进行排序

python - 多行搜索和替换

json - Nodejs createReadStream 只读取大型 JSON 文件的一个数据 block