我在Amazon Redshift中查找表创建日期时遇到问题.我知道svv_table_info会提供有关该表的所有信息,但会提供创建日期.任何人都可以帮忙吗?
我有一个包含以下记录的UNIX CSV文件 -
Merged_file.csv
USD,2015-09-22 02:34:43.0,XXX
USD,2015-09-22 03:31:43.0,XXX
USD,2015-09-22 04:35:43.0,XXX
USD,2015-09-23 03:31:43.0,XXX
USD,2015-09-23 02:34:43.0,XXX
USD,2015-09-23 03:37:43.0,XXX
USD,2015-09-23 04:32:43.0,XXX
Run Code Online (Sandbox Code Playgroud)
我想将此文件拆分为多个文件,例如一个文件应包含仅一个日期的记录.
需要的产出 -
File_2015-09-23.csv -
USD,2015-09-23 03:31:43.0,XXX
USD,2015-09-23 02:34:43.0,XXX
USD,2015-09-23 03:37:43.0,XXX
USD,2015-09-23 04:32:43.0,XXX
File_2015-09-22.csv -
USD,2015-09-22 02:34:43.0,XXX
USD,2015-09-22 03:31:43.0,XXX
USD,2015-09-22 04:35:43.0,XXX
Run Code Online (Sandbox Code Playgroud)
我尝试使用下面的命令,但由于第二个字段是时间戳,它为每个时间戳创建单独的文件,我无法弄清楚如何只将日期作为分割文件的基本字符串 -
awk -F, '{print > "File_"$2".csv"}' Merged_file.csv
Run Code Online (Sandbox Code Playgroud)
感谢是否有人可以提供帮助.
我在 Linux 上有一个 250GB 的 gzipped 文件,我想将它拆分为 250 个 1GB 文件并动态压缩生成的部分文件(一旦生成一个文件,就应该对其进行压缩)。我试过用这个 -
zcat file.gz | split -b 1G – file.gz.part
Run Code Online (Sandbox Code Playgroud)
但这正在生成未压缩的文件,这是正确的。我将其修改为如下所示,但出现错误:
zcat file.gz | split -b 1G - file.gz.part | gzip
gzip: compressed data not written to a terminal. Use -f to force compression.
For help, type: gzip -h
Run Code Online (Sandbox Code Playgroud)
我也试过这个,它没有抛出任何错误,但没有在生成零件文件后立即压缩它们。我假设这将在整个拆分完成后压缩每个文件(或者它可能会打包所有部分文件并在拆分完成后创建单个 gz 文件,我不确定)。
zcat file.gz | split -b 1G - file.gz.part && gzip
Run Code Online (Sandbox Code Playgroud)
我在这里读到有一个过滤器选项,但我的 split 版本是 (GNU coreutils) 8.4,因此不支持过滤器。
$ split --version
split (GNU coreutils) 8.4
Run Code Online (Sandbox Code Playgroud)
请建议一种合适的方法来实现这一点,最好使用单行代码(如果可能)或 shell (bash/ksh) …
我接受一些字符串作为我的脚本的用户输入,例如 -
read -p "User's full name : " FULLNAME
read -p "User's Manager's name : " MGRNAME
.
.
Run Code Online (Sandbox Code Playgroud)
我希望所有输入字符串都大写,即输入字符串中的每个单词都大写。
我写了一个简单的函数,例如 -
capitalize()
{
$1=`echo ${$1}|sed -e "s/\b\(.\)/\u\1/g"`
}
Run Code Online (Sandbox Code Playgroud)
并将这个函数称为 -
capitalize FULLNAME
Run Code Online (Sandbox Code Playgroud)
它给出了以下错误 -
line 77: ${$1}: bad substitution
Run Code Online (Sandbox Code Playgroud)
还尝试过间接扩展 -
capitalize()
{
$1=`echo ${!1^}`
}
Run Code Online (Sandbox Code Playgroud)
它抛出以下错误 -
line 77: FULLNAME=Kamlesh: command not found
Run Code Online (Sandbox Code Playgroud)
请帮助提供正确的语法或任何其他方式来实现此目的。
示例输出 - 我正在读取 FULLNAME 变量中的输入。当我调用 Capitalize() 时,它应该更新 FULLNAME 变量本身内的值。
例如,如果用户输入是 - “kamlesh gallani”
如果我现在调用大写 FULLNAME,那么 FULLNAME 应该包含“Kamlesh Gallani”