我有一个将纪元时间转换为日期的函数。这是定义
date1(){
date -d @$1
}
Run Code Online (Sandbox Code Playgroud)
我希望能够写:
$ date1 xxxyyy
Run Code Online (Sandbox Code Playgroud)
其中 xxxyyy 是我传递给函数的参数,因此我可以获得相应的日期。我明白我必须将它添加在任.bash_profile
,.profile
或.bashrc
然后它来源:
$ source file
Run Code Online (Sandbox Code Playgroud)
但是,我不确定应该把它放在哪个文件中。目前,我把它放在.profile
. 但是要运行它,我必须source .profile
每次都这样做。
理想情况下,当计算机像环境变量一样启动时,它应该使其可用。
我正在处理电影数据库问题以改进正则表达式,这是我遇到的问题。我的数据集如下所示:
电影名称(变量空格和制表符) year
Movie1(它们之间可以有空格或多个空格)(变量空格和制表符可以是 \t+ 或多个空格或单个空格> Year1
Movie2(它们之间可以有空格或多个空格)(变量空格和制表符可以是 \t+ 或多个空格或单个空格> Year2
Movie3(它们之间可以有空格或多个空格)(变量空格和制表符可以是 \t+ 或多个空格或单个空格> Year3
Movie4(可以有空格或多个空格)它们之间的空格)(变量空格和制表符可以是 \t+ 或多个空格或单个空格> Year4
我想提取所有电影的名称。这些是我在做这件事时面临的挑战:
1:分隔符是可变的。如果它是冒号或独特的东西,我会使用 awk 命令来提取它们,就像这样 awk -F 'separator' '{print $1}'
在这种情况下,它可以是单个空格、两个或多个空格或 \ 的组合t 或空格。2:对于分隔符为\t 的那些行,我可以使用\t 来提取它,因为电影名称中没有。但是如果分隔符是一个空格或两个空格呢?它们很容易出现在电影的名字中。在这些情况下,我不知道该怎么办。
我知道这个问题非常严格和具体。但正如我之前所描述的,我在这里很受阻。我想不出任何办法来解决这个问题。
是否有任何可用于实现目标的 grep/sed/awk 与 reg-ex 的组合?
假设我有一个这种格式的文本文件
field1a
field2a
field3a
field1b
field2b
field3b
Run Code Online (Sandbox Code Playgroud)
我想将 3 行(或在一般情况下为 N)连续行,我将如何sed
在 bash shell 中使用或其他命令行实用程序来执行此操作?
预期产出
field1a:field2a:field3a
field1b:field2b:field3b
Run Code Online (Sandbox Code Playgroud) 我正在研究 Unix 换行符到 Windows 换行符的转换。我尝试使用 unix2dos 但它给了我一些二进制错误,所以我查了一下并偶然发现了这个正则表达式
sed 's/$'"/`echo \\\r`/" input.txt > output.txt
这个正则表达式正在工作,但我不知道,它是如何工作的?显然我试图通过这种形式来解释它
sed 's/a/b/'
这里
a 指的是 $'",我不明白
。b 指的echo \\\r
是 '\r'
另外我不明白为什么/如何使用单引号和双引号的组合?谁能给我解释一下这个正则表达式?
经常在经过 man 的输出时
man awk
Run Code Online (Sandbox Code Playgroud)
我需要执行 grep,例如在 man awk 中,我需要找到特定标志、变量等的定义。谁能告诉我,什么是对应的 grep 命令,或者是否有更好的方法来做到这一点。我试过这个命令,但它正在吃掉所有的新行
echo `man awk`| grep NR
Run Code Online (Sandbox Code Playgroud)