小编Dud*_*ude的帖子

如何在 shell 中向 .bash_profile/.profile/bashrc 添加函数?

我有一个将纪元时间转换为日期的函数。这是定义

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每次都这样做。

理想情况下,当计算机像环境变量一样启动时,它应该使其可用。

shell bash profile function

32
推荐指数
3
解决办法
9万
查看次数

从这个不均匀的数据集中提取电影名称的策略?

我正在处理电影数据库问题以改进正则表达式,这是我遇到的问题。我的数据集如下所示:

电影名称(变量空格和制表符) 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 的组合?

grep bash sed awk regular-expression

6
推荐指数
3
解决办法
473
查看次数

在shell中一起俱乐部连续N行?

假设我有一个这种格式的文本文件

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)

text-processing

4
推荐指数
1
解决办法
2916
查看次数

这个正则表达式是什么意思?

我正在研究 Unix 换行符到 Windows 换行符的转换。我尝试使用 unix2dos 但它给了我一些二进制错误,所以我查了一下并偶然发现了这个正则表达式

sed 's/$'"/`echo \\\r`/" input.txt > output.txt

这个正则表达式正在工作,但我不知道,它是如何工作的?显然我试图通过这种形式来解释它

sed 's/a/b/'

这里

a 指的是 $'",我不明白
。b 指的echo \\\r是 '\r'

另外我不明白为什么/如何使用单引号和双引号的组合?谁能给我解释一下这个正则表达式?

shell bash sed quoting regular-expression

1
推荐指数
1
解决办法
1021
查看次数

如何在'man unix_command'上执行grep?

经常在经过 man 的输出时

man awk
Run Code Online (Sandbox Code Playgroud)

我需要执行 grep,例如在 man awk 中,我需要找到特定标志、变量等的定义。谁能告诉我,什么是对应的 grep 命令,或者是否有更好的方法来做到这一点。我试过这个命令,但它正在吃掉所有的新行

echo `man awk`| grep NR
Run Code Online (Sandbox Code Playgroud)

shell grep man

1
推荐指数
1
解决办法
1793
查看次数

标签 统计

bash ×3

shell ×3

grep ×2

regular-expression ×2

sed ×2

awk ×1

function ×1

man ×1

profile ×1

quoting ×1

text-processing ×1