有没有办法可以在 shell 脚本中使用 .bash_aliases 文件中的 bash 别名?
我想到了类似包含
source "$HOME/.bash_aliases
在我的脚本中的东西
但它不起作用。
有没有办法可以在 shell 脚本中使用 .bash_aliases 文件中的 bash 别名?
我想到了类似包含
source "$HOME/.bash_aliases
在我的脚本中的东西
但它不起作用。
假设我有一个变量v="c d e f g"
和一个包含以下内容的文件:
line1
$v
line3
如何让 bash 脚本使用第 2 行中变量的内容打印此文件,就像我使用这样的此处文档一样:
#!/bin/bash
v="c d e f g"
cat << EOF
line1
$v
line3
EOF
输出:
line1
c d e f g
line3
如何在以数字开头的每列的开头添加一个字符:
添加 ac
的示例:
4 r4 8 8 4
所以我得到这个输出:
c4 r4 c8 c8 c4
它应该适用于可变数量的列。
在 Debian 系统上升级 linux-kernel 后testing
:
Operating System: Debian GNU/Linux 12 (bookworm)
Kernel: Linux 6.1.0-7-amd64
Architecture: x86-64
Hardware Vendor: TOSHIBA
Hardware Model: PORTEGE R30-A
Firmware Version: Version 4.20
GNOME Shell: 43.4
在生成引导映像时,我打印了以下行:
update-initramfs: Generating /boot/initrd.img-6.1.0-7-amd64
W: Possible missing firmware /lib/firmware/i915/skl_huc_2.0.0.bin for module i915
W: Possible missing firmware /lib/firmware/i915/bxt_huc_2.0.0.bin for module i915
W: Possible missing firmware /lib/firmware/i915/kbl_huc_4.0.0.bin for module i915
W: Possible missing firmware /lib/firmware/i915/glk_huc_4.0.0.bin for module i915
W: Possible missing firmware /lib/firmware/i915/kbl_huc_4.0.0.bin for module i915
W: Possible missing firmware /lib/firmware/i915/kbl_huc_4.0.0.bin for module i915
W: Possible missing firmware /lib/firmware/i915/cml_huc_4.0.0.bin for module i915
W: Possible missing firmware /lib/firmware/i915/icl_huc_9.0.0.bin for module i915
W: Possible missing firmware /lib/firmware/i915/ehl_huc_9.0.0.bin for module i915
W: Possible missing firmware /lib/firmware/i915/ehl_huc_9.0.0.bin for module i915
W: Possible missing firmware /lib/firmware/i915/tgl_huc_7.9.3.bin for module i915
W: Possible missing firmware /lib/firmware/i915/tgl_huc_7.9.3.bin for module i915
W: Possible missing firmware /lib/firmware/i915/dg1_huc.bin for module i915
W: Possible missing firmware /lib/firmware/i915/tgl_huc_7.9.3.bin for module i915
W: Possible missing firmware /lib/firmware/i915/tgl_huc.bin for module i915
W: Possible missing firmware /lib/firmware/i915/tgl_huc_7.9.3.bin for module i915
W: Possible missing firmware /lib/firmware/i915/tgl_huc.bin for module i915
W: Possible missing firmware /lib/firmware/i915/skl_guc_70.1.1.bin for module i915
W: Possible missing firmware /lib/firmware/i915/bxt_guc_70.1.1.bin for module i915
W: Possible missing firmware /lib/firmware/i915/kbl_guc_70.1.1.bin for module i915
W: Possible missing firmware /lib/firmware/i915/glk_guc_70.1.1.bin for module i915
W: Possible missing firmware /lib/firmware/i915/kbl_guc_70.1.1.bin for module i915
W: Possible missing firmware /lib/firmware/i915/kbl_guc_70.1.1.bin for module i915
W: Possible missing firmware /lib/firmware/i915/cml_guc_70.1.1.bin for module i915
W: Possible missing firmware /lib/firmware/i915/icl_guc_70.1.1.bin for module i915
W: Possible missing firmware /lib/firmware/i915/ehl_guc_70.1.1.bin for module i915
W: Possible missing firmware /lib/firmware/i915/ehl_guc_70.1.1.bin for module i915
W: Possible missing firmware /lib/firmware/i915/tgl_guc_70.1.1.bin for module i915
W: Possible missing firmware /lib/firmware/i915/tgl_guc_70.1.1.bin for module i915
W: Possible missing firmware /lib/firmware/i915/dg1_guc_70.bin for module i915
W: Possible missing firmware /lib/firmware/i915/tgl_guc_69.0.3.bin for module i915
W: Possible missing firmware /lib/firmware/i915/tgl_guc_70.1.1.bin for module i915
W: Possible missing firmware /lib/firmware/i915/tgl_guc_70.bin for module i915
W: Possible missing firmware /lib/firmware/i915/adlp_guc_69.0.3.bin for module i915
W: Possible missing firmware /lib/firmware/i915/adlp_guc_70.1.1.bin for module i915
W: Possible missing firmware /lib/firmware/i915/adlp_guc_70.bin for module i915
W: Possible missing firmware /lib/firmware/i915/dg2_guc_70.bin for module i915
W: Possible missing firmware /lib/firmware/i915/bxt_dmc_ver1_07.bin for module i915
W: Possible missing firmware /lib/firmware/i915/skl_dmc_ver1_27.bin for module i915
W: Possible missing firmware /lib/firmware/i915/kbl_dmc_ver1_04.bin for module i915
W: Possible missing firmware /lib/firmware/i915/glk_dmc_ver1_04.bin for module i915
W: Possible missing firmware /lib/firmware/i915/icl_dmc_ver1_09.bin for module i915
W: Possible missing firmware /lib/firmware/i915/tgl_dmc_ver2_12.bin for module i915
W: Possible missing firmware /lib/firmware/i915/rkl_dmc_ver2_03.bin for module i915
W: Possible missing firmware /lib/firmware/i915/dg1_dmc_ver2_02.bin for module i915
W: Possible missing firmware /lib/firmware/i915/adls_dmc_ver2_01.bin for module i915
W: Possible missing firmware /lib/firmware/i915/adlp_dmc_ver2_16.bin for module i915
W: Possible missing firmware /lib/firmware/i915/dg2_dmc_ver2_07.bin for module i915
有谁知道,需要安装哪些数据包才能为我的系统提供适当的驱动程序/内核模块?
我有一个以下格式的文本文件:
c4 c4 r4 c8 c8 e2 e2 c1
c4 c4 r4 c8 c8 c1 e2 e2
c4 c4 r4 e2 e2 c8 c8 c1
c4 c4 r4 e2 e2 c1 c8 c8
c4 c4 r4 c1 e2 e2 c8 c8
c4 c4 r4 c1 c8 c8 e2 e2
c4 c4 c8 c8 r4 e2 e2 c1
c4 c4 c8 c8 r4 c1 e2 e2
c4 c4 c8 c8 e2 e2 r4 c1
c4 c4 c8 c8 e2 e2 c1 r4
c4 c4 c8 c8 c1 e2 e2 r4
c4 c4 c8 c8 c1 r4 e2 e2
c4 c4 e2 e2 c8 c8 r4 c1
c4 c4 e2 e2 c8 c8 c1 r4
c4 c4 e2 e2 r4 c8 c8 c1
我想从行内重复的列中删除所有数字,但始终保留第一种方法,当值被另一个数字更改时也是如此 - 因此输出如下所示:
c4 c r c8 c e2 e c1
c4 c r c8 c c1 e2 e
c4 c r e2 e c8 c c1
c4 c r e2 e c1 c8 c
c4 c r c1 e2 e c8 c
c4 c r c1 c8 c e2 e
c4 c c8 c r4 e2 e c1
c4 c c8 c r4 c1 e2 e
c4 c c8 c e2 e r4 c1
c4 c c8 c e2 e c1 r4
c4 c c8 c c1 e2 e r4
c4 c c8 c c1 r4 e2 e
c4 c e2 e c8 c r4 c1
c4 c e2 e c8 c c1 r4
c4 c e2 e r4 c8 c c1
可能的数字是 (1-64)
假设我有价值观A B C D E
和八个地方1 2 3 4 5 6 7 8
。我怎样才能得到所有可能的组合打印两次和三次重复?
例子:
1 2 3 4 5 6 7 8
_______________
A A B B C C D E
A B B C C D D E (and so on...)
A A A B B C D E
A B B B C C D E (and so on...)
哪个组合紧随其后并不重要。不应有任何缺失值,例如AABBCCDD
(E
缺失的地方)
在我的 Debian 系统上应用最近的升级后,我无法使用我的用户帐户登录。密码无法识别。使用相同的用户名和密码在没有 GUI 的情况下登录可以正常工作。
Operating System: Debian GNU/Linux bookworm/sid
Kernel: Linux 5.16.0-5-686-pae
Architecture: x86
Hardware Vendor: Lenovo
Hardware Model: Rev 1.
Gnome-shell: 41.4
有谁知道如何解决这一问题?
在应用升级之前,我apt-listbugs
已安装并没有收到任何警告。
如果我有一个带有这样的结构化列表的文本文件:
#linux
##audio
###sequenzer
####qtractor
###drummachine
####hydrogen
##scores
###lilypond
###musescore
##bureau
###kalender
####calcurse
###todo
####tudu
我怎样才能tree
像命令行一样打印它?
linux/
├── audio
│ ├── drummachine
│ │ └── hydrogen
│ └── sequenzer
│ └── qtractor
├── bureau
│ ├── kalender
│ │ └── calcurse
│ └── todo
│ └── tudu
└── scores
├── lilypond
└── musescore
有没有我错过的应用程序?
如果我有以下格式的文件:
line1 column1
line2 columnA
line3 column1A
exclude this
line5 column2
line6 columnB
line7 column2B
我想交换列,所以column*
在line*
. 我使用这样的简单awk
命令:awk '{print $2 " " $1}'
并获得如下输出:
column1 line1
columnA line2
column1A line3
this exclude
column2 line1
columnB line2
column2B line3
现在我希望exclude
打印但不使用的行(不一定是第 3 行)。我可以使用这个命令来忽略这些行:awk '/exclude/{next}{print $2 " " $1}'
我得到一个没有排除行的输出:
column1 line1
columnA line2
column1A line3
column2 line1
columnB line2
column2B line3
如何告诉awk
打印那些包含exclude
但不使用列的行?所以我会得到这样的输出:
column1 line1
columnA line2
column1A line3
exclude this
column2 line1
columnB line2
column2B line3
我有一个编号的文件列表,如下所示:
01_file_name.log
01_file_name.txt
02_file_name.log
02_file_name.txt
03_file_name.log
03_file_name.txt
04_file_name.log
04_file_name.txt
05_file_name.log
05_file_name.txt
我想为所有03*
和文件插入新04*
文件。因此,从编号03
开始,所有文件都需要移动/重命名,其前导编号增加 2,因此列表如下所示:
01_file_name.log
01_file_name.txt
02_file_name.log
02_file_name.txt
05_file_name.log
05_file_name.txt
06_file_name.log
06_file_name.txt
07_file_name.log
07_file_name.txt
我在想类似的东西:
bash script.sh 03 02
而03
on$1
是文件名的开头编号和要添加的编号02
。$2
我试图通过嵌套来实现这一点,for-loop
但我不得不放弃使用计数器的组合((++))
来使循环仅通过病房中给定编号的文件运行。
我将nano
它用作文件类型的标准编辑器,它没有内置的LilyPond语法突出显示。这不是我真正需要的,尽管我在行尾错过了很多空白字符。当然我可以批量删除它们,如Strip trailing whitespace from files中所述。
但是以某种方式启用此功能应该不会太难,因此我可以从头开始编写更干净的代码。
有谁知道该怎么做?
就像nano
shell 脚本一样。
我有一堆以下格式的LilyPond文件:
\score {
\new StaffGroup = "" \with {
instrumentName = \markup { \bold \huge \larger "1." }
}
<<
\new Staff = "celloI" \with { midiInstrument = #"cello" }
\relative c {
\clef bass
\key c \major
\time 3/4
\tuplet 3/2 4 {
c8(\downbow\f b c e g e)
} c'4 | %01
\tuplet 3/2 4 {c,8( b c e f a) } c4 | %02
\tuplet 3/2 4 { g,8( d' f g f d) } b'4 | %03
}
>>
\layout {}
\midi {}
}
如何将\relative c {...}
块提取到一个新文件中,所以它看起来像这样:
\relative c {
\clef bass
\key c \major
\time 3/4
\tuplet 3/2 4 {
c8(\downbow\f b c e g e)
} c'4 | %01
\tuplet 3/2 4 {c,8( b c e f a) } c4 | %02
\tuplet 3/2 4 { g,8( d' f g f d) } b'4 | %03
}
在这种情况下,不一定需要修复缩进。那会是一个任务吗awk
?csplit
它会是什么样子?
我有一个具有以下格式的文本文件,我想在这些行之后添加一条垂直线,然后增加数字:
c4-1 d e c
c d e c
e-2 f g2
e4 f g2
g8-4\( a-5 g f\) e4 c
g'8\( a g f\) e4 c
c-1 r c2
c4 r c2
我通过以下方式实现了行和编号while-loop
:
#!/bin/bash
while read -r line; do
if [ -z "$line" ]; then
echo
continue
fi
n=$((++n)) \
&& grep -vE "^$|^%" <<< "$line" \
| sed 's/$/\ \|\ \%'$(("$n"))'/'
done < file
并获得如下输出:
c4-1 d e c | %1
c d e c | %2
e-2 f g2 | %3
e4 f g2 | %4
g8-4\( a-5 g f\) e4 c | %5
g'8\( a g f\) e4 c | %6
c-1 r c2 | %7
c4 r c2 | %8
现在我希望添加垂直对齐并获得如下输出:
c4-1 d e c | %1
c d e c | %2
e-2 f g2 | %3
e4 f g2 | %4
g8-4\( a-5 g f\) e4 c | %5
g'8\( a g f\) e4 c | %6
c-1 r c2 | %7
c4 r c2 | %8
这意味着我需要以某种方式获取最长行的行长(此处:21 个字符)和每行的行长并添加空格的差异,我该如何实现呢?
有没有办法git
像处理文件一样处理符号链接。如果我通常只是添加一个符号链接git add symlink
,git 只是存储/控制文件的路径,而不是链接文件。
是否可以git
像处理链接文件本身一样处理符号链接?
由于最近在我的 Debian 系统上进行了一些升级,我发现鼠标指针在 Gnome 背景前消失了,这意味着顶部栏、桌面和系统窗口。只要将指针移到任何应用程序的窗口前面,它就会再次出现。
我对此主题进行了一些研究,但没有找到更多可能与以下软件包之一有关的内容:
xserver-xorg-input-mouse
installed version: 1:1.9.3-1
和或:
mutter
installed version: 3.30.2-9
更多系统信息:
Operating System: Debian GNU/Linux bullseye/sid
Kernel: Linux 5.2.0-2-686-pae
Architecture: x86
GNOME shell: 3.30.2
有谁知道如何解决这个问题?
我有一个像这样的字符串:
schedule="0.25"
我想0.25
用0.50
我可以通过以下方式实现这一目标:
sed 's/\"....\"/\"0\.50\"/g'
问题是我不知道双引号之间的值,因此我不知道长度。它可以是任何值,但总是以schedule=
.
我有一个这样的 csv 文件:
Row 1,1,4.50,
Row 2,8,0.30,
Row 3,14,0.30,
Row 4,2,2.50,
Row 5,20,0.30,
我想将第二个 coulmn 与第三个相乘并将结果作为第四个相加。
我得到了这个简单的 awk 命令:
awk -F',' '{print $1 "," $2 "," $3 "," $2 * $3}' file
我得到:
Row 1,1,4.50,4.5
Row 2,8,0.30,2.4
Row 3,14,0.30,4.2
Row 4,2,2.50,5
Row 5,20,0.30,6
有没有办法像 [N.NN] 那样格式化最后一列的输出?
所以我会得到这样的输出:
Row 1,1,4.50,4.50
Row 2,8,0.30,2.40
Row 3,14,0.30,4.20
Row 4,2,2.50,5.00
Row 5,20,0.30,6.00
如果我有以下格式的 csv 文件:
column1,column2,column3,column4,column5,column6,column7,column8
我只想awk
打印我会使用的第 2 到第 7 列:
awk -F',' '{print $2 "," $3 "," $4 "," $5 "," $6 "," $7}' file.csv
并得到:
column2,column3,column4,column5,column6,column7
有没有办法连接第 2-7 列来简化命令。当我考虑一个包含更多列的文件时,我的awk
命令会变得非常长。
我正在使用tor
debian-testing 发行版附带的软件包:
Package: tor
Version: 0.3.5.8-1
我经常将它与以下内容结合使用proxychains
:
proxychains -q curl -s -L https://ipecho.net/plain
如何更改路由,以便从命令行获取新 IP?