8文字目から2行目全体を印刷したいです。
例:
1234567890
12 45 7foobar
1234567890
出力:
foobar
sed -n '2p'
2行目全体を印刷しようとしています。
答え1
sedを使用してください:
sed -n '2s/.\{7\}//p' file
awkを使用してください:
awk 'NR==2{print substr($0,8)}' file
答え2
cut
8番目の文字以降の内容のみを取得するために使用されます。
$ sed -n "2p" test | cut -c 8-
foobar
答え3
grep
$ grep -zoP '\A(?:.*\n){1}.{7}\K.*' file | tr -d '\0'
$ grep -m2 ^ file | tail -n 1 | cut -c8-
$ grep -Pom2 '.{7}\K.*' file | tail -n 1
Python
$ python3 -c 'print(open("file").read().splitlines()[1][7:])'
真珠
$ perl -lne 'print(unpack("x7A*")), last if 2..2' file
sed
$ sed -e '
/\n/{s/.$//;q;}
2G;//s/./\n/7;D
' file
バッシュ組み込み関数
N=1
while IFS= read -r l; do
case $N in
2)
printf '%s\n' "${l:7}"
break;;
esac
(( N++ ))
done < file
布材:
grep はファイルをフルルック飲み、最初の行をスキップし、2 行目の 7 文字をスキップし、その行の残りの文字を出力パケットに入れます。
grepは完全に縮小された2つの一致を印刷し、if cutメソッドを介して尾をつかみ、最初の7文字を切り取ります。
Pythonはファイルを読み取り、複数行に分割し、2番目のファイルを選択してから8番目の文字を印刷します。
Perlは2行目を解凍し、最初の7文字を無視し、その後の各文字を印刷します。
bashの組み込み機能は説明を必要としません。
答え4
awkとPythonの2つの方法で完了しました
awk 'NR==2{sub(/^.{7}/,"",$0);print $0}' filename
python
#!/usr/bin/python
import re
m=re.compile(r'.{7}')
k=open('filename','r')
j=[]
for i in k:
j.append(i.strip())
print re.sub(m,"",j[1])
出力
foobar